我尝试检查 Python 3.x 中的可调用变量
I try to check a variable for callable in Python 3.x
我尝试检查名称是否可调用。来自 john 我希望 "I'm a callable" 和来自 kate "I'm not a callable"。但是我 "I'm not a callable" 两次
def name(first_name, last_name):
return first_name+' '+last_name
class Person:
def __init__(self, name):
self.name = name
if callable(self.name):
print("I'm a callable")
else:
print("I'm not a callable")
john = Person( name('John', 'Green'))
kate = Person("Kate")
结果是:
I'm not a callable
I'm not a callable
您在两个示例中都传递了一个不可调用的 str 对象。比较:
>>> a = Person(name('John', 'Watson'))
I'm not a callable
>>> a = Person(name)
I'm a callable
name() 可调用,而其 return 值不可调用。
我尝试检查名称是否可调用。来自 john 我希望 "I'm a callable" 和来自 kate "I'm not a callable"。但是我 "I'm not a callable" 两次
def name(first_name, last_name):
return first_name+' '+last_name
class Person:
def __init__(self, name):
self.name = name
if callable(self.name):
print("I'm a callable")
else:
print("I'm not a callable")
john = Person( name('John', 'Green'))
kate = Person("Kate")
结果是:
I'm not a callable
I'm not a callable
您在两个示例中都传递了一个不可调用的 str 对象。比较:
>>> a = Person(name('John', 'Watson'))
I'm not a callable
>>> a = Person(name)
I'm a callable
name() 可调用,而其 return 值不可调用。