【问题标题】:I try to check a variable for callable in Python 3.x我尝试在 Python 3.x 中检查可调用变量
【发布时间】:2018-12-03 08:39:02
【问题描述】:

我尝试检查名称是否可调用。从 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

【问题讨论】:

    标签: django python-3.x conditional-statements callable


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2019-01-24
      • 1970-01-01
      • 2020-10-18
      • 1970-01-01
      • 2013-12-21
      • 1970-01-01
      • 1970-01-01
      • 2022-01-04
      • 1970-01-01
      相关资源
      最近更新 更多