gpt4 book ai didi

python - python中使用函数时,需要创建哪些对象?

转载 作者:太空狗 更新时间:2023-10-30 02:46:35 24 4
gpt4 key购买 nike

我在某处读到,在 python 的函数内部定义函数是不好的,因为它会让 python 在调用外部函数时立即创建一个新的函数对象。有人基本上是这样说的:

#bad
def f():
def h():
return 4
return h()

#faster
def h():
return 4

def f(h=h):
return h()

这是真的吗?另外,如果我有大量这样的常量怎么办:

x = # long tuple of strings
# and several more similar tuples
# which are used to build up data structures

def f(x):
#parse x using constants above
return parse dictionary

如果我将所有常量都放在 f 的定义中,会不会更快?或者我应该将它们留在外面并将它们绑定(bind)到关键字参数中的本地名称?不幸的是,我没有任何数据可以用来计时,所以我想我想问的是你在类似事情上的经历。

最佳答案

对您问题的简短回答 - 这是真的。每次调用外部函数时都会创建内部函数,这需要一些时间。与访问局部变量相比,访问在函数外部定义的对象也更慢。

但是,您还提出了更重要的问题 - “我应该关心吗?”。对此的回答几乎总是NO。性能差异将非常小,代码的可读性更有值(value)。

因此,如果您认为此函数属于其他函数的主体并且在其他地方没有任何意义 - 只需将其放在内部并且不要关心性能(至少,直到您的分析器告诉您否则)。

关于python - python中使用函数时,需要创建哪些对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19754844/

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