Python函数作为变量-不同数量的参数
也许是个奇怪的问题。假设我有这样的代码:Python函数作为变量-不同数量的参数,python,Python,也许是个奇怪的问题。假设我有这样的代码: def foo(): print "Foo" def bar(x): print x func = foo func() func = bar arg = 'a' func(arg) 有没有一种方法可以设置一个“空”参数,这样我就可以调用assign foo()给func,然后仍然调用func(arg) 不仅仅是像这样的解决方法 if arg is None: func() else: func(arg) 试试这个 def f
def foo():
print "Foo"
def bar(x):
print x
func = foo
func()
func = bar
arg = 'a'
func(arg)
有没有一种方法可以设置一个“空”参数,这样我就可以调用assign foo()给func,然后仍然调用func(arg)
不仅仅是像这样的解决方法
if arg is None:
func()
else:
func(arg)
试试这个
def foo(arg=None):
print "Foo"
还是用这个
def foo(*arg):
print "foo"
那你想怎么叫都行
arg = 'a'
func = foo
func(arg)
func = bar
func(arg)
或者正如其他人指出的那样
arg=()
func=foo
func(*arg)
arg=('hello',)
func(*arg)
试试这个
def foo(arg=None):
print "Foo"
还是用这个
def foo(*arg):
print "foo"
那你想怎么叫都行
arg = 'a'
func = foo
func(arg)
func = bar
func(arg)
或者正如其他人指出的那样
arg=()
func=foo
func(*arg)
arg=('hello',)
func(*arg)
当然,如果您使用元组/列表和 结果:
Foo
a
当然,如果您使用元组/列表和 结果:
Foo
a
是,使用splat操作符
args = []
func = foo
func(*args)
func = bar
args = ["Hello world!"]
func(*args)
“你好,世界!”
你甚至可以用字典来做这类事情
funcs = (foo, bar)
func_dict = {func.__name__: func for func in funcs}
args = []
func_dict["foo"](*args)
是,使用splat操作符
args = []
func = foo
func(*args)
func = bar
args = ["Hello world!"]
func(*args)
“你好,世界!”
你甚至可以用字典来做这类事情
funcs = (foo, bar)
func_dict = {func.__name__: func for func in funcs}
args = []
func_dict["foo"](*args)
太棒了,正是我想要的东西有些,正是我想要的