我需要做的是循环遍历大量不同的文件并(尝试)从文件中获取元数据。
我可以做一个大的如果…伊里夫。。。对每个扩展进行测试,但我认为将扩展存储在变量中、检查是否存在具有该名称的函数并执行它会容易得多。
这是我当前的解决方案,取自另一个stackoverflow线程:
try:
getattr(modulename, funcname)(arg)
except AttributeError:
print 'function not found "%s" (%s)' % (funcname, arg)
有个问题: 如果基础函数引发AttributeRor,则这将注册为“找不到函数”错误。 我可以添加try…除了块到所有函数,但这也不是特别漂亮。。。
我要找的更像是:
if function_exists(fun):
execute_function(fun, arg)
有没有直截了当的方法?
谢谢:-)
就像@mouad说的,
callable(function)
可以调用函数。可以使用此命令从变量内部调用函数,方法如下:
这将调用指定为arg的函数。
要在变量中使用此项:
^{} function 有一个可选的第三个参数,用于在属性不存在时返回默认值,因此可以使用该参数:
你可以:
或者更好:
相关问题 更多 >
编程相关推荐