python中的内容不是可调用的

时间:2017-02-16 14:55:00

标签: python

我试图了解“可赎回”的概念。我一直在阅读What is a "callable" in Python?http://eli.thegreenplace.net/2012/03/23/python-internals-how-callables-work/

简单来说,我认为我总结一个可调用的方法,函数或具有__call__方法的类。假设这大概是什么'事情'在python中不可调用,为什么不可调用?我试图更好地理解可以被称为什么以及什么不能做什么的大局。

1 个答案:

答案 0 :(得分:1)

不可调用的东西是在其上调用'callable()'的结果为false的东西。例如:

a = 'a'
print callable(a)
print callable(a.capitalize)
>> False
>> True

因此字符串不可调用,但是字符串方法capitalize()可以调用所有大写字母的字符串副本。

l = [1, 2]
print callable(l)
>> False

同样,列表不可调用。事实上,大多数对象都不可调用。

class Test(object):
    my_member = 'A'

t = Test()
print callable(t)
>> False

print callable(Test)
>> True

但正如您所看到的,Test类的构造函数是可调用的,这就是我们构造类实例的方式。