Notations
项目描述
Notations
通过查看函数内部的循环嵌套级别,静态估计给定Python函数的渐近符号。
这是一个早期原型
示例
from notations import notation
def my_example_function(arg1, arg2):
f = 0
for a in arg1:
for i in a:
f+=1
for b in arg2:
for j in b:
f+=1
print(notation(my_example_function))
将打印 Θ(n^2)
有关更多示例,请参阅 test_notations.py
。
待办事项
这是目前一个概念的大致草图。
while
运算符- 查看函数中输入参数之间的关系,仅仅因为循环嵌套,并不意味着
O(n_n)
是正确的 - 循环内的分支
- 测试生成器
常见问题解答
- 为什么不使用AST? AST不能在运行时(容易地)从代码对象构建,此库旨在用于评估编译函数的执行顺序。
- 如何在不运行代码的情况下计算顺序? 此函数通过查看函数中的循环嵌套级别,使用生成器和参数之间的关系来确定顺序。动态运行时基准测试容易受到环境条件(嘈杂的邻居)的影响,并且已经有大量工具可以做到这一点。
研究笔记
变更
0.2.0
- 修改了 repr 的theta值
0.1.0
- 支持基本for循环的初始原型
项目详情
下载文件
下载适用于您平台上的文件。如果您不确定该选择哪一个,请了解更多关于安装包的信息。
源代码分发
notations-0.2.0.tar.gz (6.2 kB 查看哈希值)
构建分发
notations-0.2.0-py2.py3-none-any.whl (13.6 kB 查看哈希值)
关闭
notations-0.2.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 06177c0988ea986a3c7763692ff41b3262e0ba47528ad88898927a01efd1d522 |
|
MD5 | 0e718b3bd010231f68d62d4cbad4d7fd |
|
BLAKE2b-256 | 4dccf169ddf9b47f3b3b49c7ac2b33301de6d1484d74be701ab928814d8ccf93 |
关闭
notations-0.2.0-py2.py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c8a77e6974cfad5e7112da3e474df2255048fdb930021070486bcbffd8a85386 |
|
MD5 | 973fc2b05a64ca4bc504fb8afbd335de |
|
BLAKE2b-256 | f08df9f88c72ff6e26225fa78068d5933555b49f969faa48857c9dc52aac9d55 |