gpt4 book ai didi

相互引用的 Python 关键字参数

转载 作者:行者123 更新时间:2023-11-28 22:00:18 25 4
gpt4 key购买 nike

当我尝试以下操作时出现错误

def test_func(key1=2.7, key2=key1*3.5):
print(key1, key2)

NameError: name 'key1' is not defined

我的解决方案是这样的

def test_func(key1=2.7, key2=None):
if not key2:
key2 = key1*3.5

print(key1, key2)

但这对我来说有点难看。有人有更好的解决方案吗?

编辑:

所以我最终的解决方案是

def test_func(key1=2.7, key2=None):
if key2 is not None:
key2 = key1*3.5

print(key1, key2)

谢谢大家的回答

最佳答案

不,没有更好的解决方案。

函数参数定义可以是表达式,但它们只被评估一次(这有时会让人们感到惊讶,参见 "Least Astonishment" and the Mutable Default Argument)。

关于相互引用的 Python 关键字参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15051110/

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