python中什么是不可调用的

python中什么是不可调用的,python,Python,我试图理解“可调用”的概念。我一直在通读 简单地说,我想我可以把一个callable总结为一个方法、函数或类,它有一个\uu调用\uu方法。假设这大致正确,python中的哪些“东西”是不可调用的,为什么不可调用?我试图更好地理解什么可以调用,什么不能调用的大局。不可调用的东西是调用“callable()”的结果是错误的。例如: a = 'a' print callable(a) print callable(a.capitalize) >> False >> True

我试图理解“可调用”的概念。我一直在通读


简单地说,我想我可以把一个callable总结为一个方法、函数或类,它有一个
\uu调用\uu
方法。假设这大致正确,python中的哪些“东西”是不可调用的,为什么不可调用?我试图更好地理解什么可以调用,什么不能调用的大局。

不可调用的东西是调用“callable()”的结果是错误的。例如:

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
同样,列表也不可调用。事实上,大多数对象都是不可调用的

l = [1, 2]
print callable(l)
>> False
class Test(object):
    my_member = 'A'

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

print callable(Test)
>> True

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

否。为什么您认为它与实例化有关?当然,您已经回答了自己的问题:没有
\uuuu call\uuuu
方法的东西是不可调用的。这似乎是一个有点奇怪的问题。特别是当您添加“为什么不”部分时。对于某些“东西”,能给它们打电话是没有意义的。比如整数、字符串、布尔值、列表、模块等等。我认为更具体地说明“事物”是什么会对您有所帮助。
ClassName()
实例化一个类<代码>函数\u name()运行函数。他们都可以打电话,因为打电话意味着什么<代码>42()没有任何意义<代码>“你好”(没有任何意义。所以它们是不可调用的。回答你的问题:Python中的所有东西都是可调用的,如果它有一个
\uu call\uu
方法。现在,如果你问为什么这些东西没有一个
\uuuu call\uuuuu
方法……好吧……谢谢你,这是一个奇怪的问题,可能措辞很糟糕,但我认为你在这里帮助了我,提到了“整数、字符串或布尔”这些东西,它们被调用是没有意义的。谢谢你,我感谢你的解释。