首页 > 解决方案 > 我尝试在 Python 3.x 中检查可调用变量

问题描述

我尝试检查名称是否可调用。从john我期望“我是一个可调用的”和从kate “我不是一个可调用的”。但我两次得到“我不是可调用的”

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

标签: djangopython-3.xconditional-statementscallable

解决方案


您在两个示例中都传递了一个不可调用的 str 对象。相比:

>>> a = Person(name('John', 'Watson'))
I'm not a callable
>>> a = Person(name)
I'm a callable

name() 是可调用的,而它的返回值不是。


推荐阅读