gpt4 book ai didi

python - 在 Python 中,我可以根据其他参数指定函数参数的默认值吗?

转载 作者:IT老高 更新时间:2023-10-28 22:12:22 25 4
gpt4 key购买 nike

假设我有一个带有两个参数的 python 函数,但我希望第二个参数是可选的,默认值是作为第一个参数传递的任何参数。所以,我想做这样的事情:

def myfunc(arg1, arg2=arg1):
print (arg1, arg2)

除非那不起作用。我能想到的唯一解决方法是:

def myfunc(arg1, arg2=None):
if arg2 is None:
arg2 = arg1
print (arg1, arg2)

有没有更好的方法来做到这一点?

最佳答案

正如@Ignacio 所说,您不能这样做。在后一个示例中,您可能会遇到 Nonearg2 的有效值的情况。如果是这种情况,您可以使用哨兵值:

sentinel = object()
def myfunc(arg1, arg2=sentinel):
if arg2 is sentinel:
arg2 = arg1
print (arg1, arg2)

myfunc("foo") # Prints 'foo foo'
myfunc("foo", None) # Prints 'foo None'

关于python - 在 Python 中,我可以根据其他参数指定函数参数的默认值吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4575326/

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