Kώσ*_*δας 4 python arguments default function user-defined-functions
假设我有这样的功能:
def myF(a, b):
return a*b-2*b
Run Code Online (Sandbox Code Playgroud)
假设我希望 的默认b值为a-1。
如果我写:
def myF(a, b=a-1):
return a*b-2*b
Run Code Online (Sandbox Code Playgroud)
我收到错误消息:
NameError: name 'a' is not defined
Run Code Online (Sandbox Code Playgroud)
我可以使用下面的代码:
def myF(a, b):
return a*b-2*b
def myDefaultF(a):
return myF(a, a-1)
Run Code Online (Sandbox Code Playgroud)
具有myF默认值,但我不喜欢它。
如何避免myDefaultF并使用myF默认值a-1而不出现b错误?
您可以执行以下操作:
def myF(a, b=None):
if b is None:
b = a - 1
return a * b - 2 * b
Run Code Online (Sandbox Code Playgroud)