我知道我可以创建一个命名参数化 python 函数,例如
def t(a=None, b=None):
return a+b
然后我可以调用
t(b=2, a=5)
但是,如果 a
和 b
都不是可选的,那么我需要在运行时检查函数,例如
def t(a=None, b=None):
if a is not None and b is not None:
return a+b
else:
raise Exception('Missing a or b')
是否可以在编译时检查并尽快失败?
例如
t(a=3) # raise error
最佳答案
如果参数不是可选的,不要使用默认值。
您仍然可以在调用中将这些参数用作命名参数; Python 函数中的所有 参数都命名为:
def t(a, b):
return a+b
t(a=3, b=4)
请注意,传入错误数量的参数始终是运行时检查,而不是编译时检查。作为一种动态语言,不可能在编译时知道调用它时实际对象 t
是什么。
关于python - 没有默认值的命名参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40703006/