Chr*_*ris 0 python function keyword-argument
你如何使用我希望传递关键字参数的函数的名称?
例如,我有以下功能:
def func(keyword1='A'):
print keyword1
Run Code Online (Sandbox Code Playgroud)
我可以做这个:
func.__name__
>> 'func'
Run Code Online (Sandbox Code Playgroud)
但是,我想这样做:
func(keyword1='B').__name__
>>> 'func'
Run Code Online (Sandbox Code Playgroud)
我想这样做的原因是因为我有另一种方法将该函数作为参数接受,它需要拉出函数的名称并使用不同的关键字运行该函数.
所以,我真正想要做的就是让这个功能起作用:
def Function_Name_And_Result(x):
print x.__name__ + x()
Function_Name_And_Result(func(keyword1='B'))
>> funcB
Run Code Online (Sandbox Code Playgroud)
Python的函数也是对象,因此您可以像传递任何其他对象一样传递它们.你正在做什么(显然无法工作)是传递调用函数的结果.你想要的是传递函数和函数的参数:
def print_function_name_and_result(func, *args, **kw):
print "%s : %s" % (func.__name__, func(*args, **kw))
print_function_name_and_result(func, keyword1='B')
>> func : B
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
334 次 |
| 最近记录: |