【发布时间】:2015-06-01 20:18:36
【问题描述】:
是否可以在方法中忽略传递/过度给定的参数?
这是我想做的事情的一个例子:
def event_handler(one, two):
print(one)
print(two)
在另一个地方:
event_handler(one, two, three)
我的意思是第三个参数是可选的。我已经在 Python Fiddle 中尝试过,但它无法正常工作。
【问题讨论】:
是否可以在方法中忽略传递/过度给定的参数?
这是我想做的事情的一个例子:
def event_handler(one, two):
print(one)
print(two)
在另一个地方:
event_handler(one, two, three)
我的意思是第三个参数是可选的。我已经在 Python Fiddle 中尝试过,但它无法正常工作。
【问题讨论】:
将第三个设为默认参数
def event_handler(one, two, third = None):
然后进行错误处理,但由于它是默认的,这很容易。
def event_handler(one, two, third = None):
print(one)
print(two)
if (three):
print(three)
【讨论】:
*args 和**kwargs。他们可能对你有帮助
在*args 中使用可变参数。
def f(*args): pass
以args[0] 之类的列表访问变量,...
或者,
def f(required_arg1, required_arg2, *optional_args): pass
【讨论】: