gpt4 book ai didi

python - 在函数性能中声明元组

转载 作者:太空宇宙 更新时间:2023-11-04 08:44:26 25 4
gpt4 key购买 nike

我应该在函数内部还是全局声明一个元组?如果在内部,它会在每次函数调用时重新创建吗?

def isBracket(s):
t = ('a','b','c','d')
return s in t

最佳答案

您可以使用 dis模块反汇编函数字节码。你会看到不同之处:

>>> import dis
>>> def isBracket(s):
... t = ('a','b','c','d')
... return s in t
...
>>> dis.dis(isBracket)
2 0 LOAD_CONST 5 (('a', 'b', 'c', 'd'))
3 STORE_FAST 1 (t)

3 6 LOAD_FAST 0 (s)
9 LOAD_FAST 1 (t)
12 COMPARE_OP 6 (in)
15 RETURN_VALUE
>>> t = ('a','b','c','d')
>>> def isBracket(s):
... return s in t
...
>>> dis.dis(isBracket)
2 0 LOAD_FAST 0 (s)
3 LOAD_GLOBAL 0 (t)
6 COMPARE_OP 6 (in)
9 RETURN_VALUE

你可以看到第二个版本的改进:tuple 不必在每次调用时都加载和存储。

关于python - 在函数性能中声明元组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41999597/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com