我需要对照其他f
来检查值,该值要么只是一个值,要么是可调用的东西,它可以根据另一个变量p
的值返回一个值。如果存在,我正在寻找一种比我在下面写的更加Python化的方法:
p = 5 # Some value that is available in the code
def check_val(x):
if callable(x):
return x(p)
else:
return x
#Either/or
f = 1
f = lambda a: 1.5*a
if 2 < check_val(f):
print("no good")
答案 0 :(得分:-1)
由于控制流取决于对象类型,因此您应该能够在types
模块中找到相关的类型类。
import types # see https://docs.python.org/3/library/types.html
p = 5 # Some value that is available in the code
def check_val(x, p):
if isinstance(x, (types.FunctionType, types.LambdaType):
return x(p)
else:
return x
#Either/or
f = 1
f = lambda a: 1.5*a
if 2 < check_val(f, p):
print("no good")