来自https://docs.python.org/3/reference/expressions.html#calls
主要必须求值为可调用对象(用户定义函数,内置函数,内置对象方法,类 对象,类实例的方法,以及所有具有的对象
__call__()
方法是可调用的)。
“类实例的方法”是否意味着“作为属性的函数” 某些类的实例“或”作为某些类的属性 在类的实例上运行的类“?我想它会尝试 意思是后者,但措辞似乎意味着前者。一个 类的实例可能具有不属于属性的属性 该类的功能:
class C:
pass
c=C()
def f():
pass
c.myfun=f
其中c.myfun
是实例c
的函数属性,而不是
类C
的函数属性。
通常用于指代某个属性的名称是什么 类的实例,它不是类的属性?
感谢。
答案 0 :(得分:2)
类对象引用类对象..不是该类的实例。
>>> C
<class __main__.C at 0x01FA89D0>
python中的所有内容都是一个对象。有一流的对象(这里有关于这个主题https://stackoverflow.com/a/245208/840582的很好的答案)。
&#39;类实例的方法&#39;指的是在类中定义的方法(函数),并且绑定到实例
class C:
pass
def inst_f(self):
pass
>>> c
<__main__.C instance at 0x0293A5F8>
>>> c.inst_f
<bound method C.inst_f of <__main__.C instance at 0x0293A5F8>>
>>> f
<function f at 0x02986070>
类实例是使用该类创建的对象; a = C()
a是C的实例。您可以在<__main__.C instance at 0x0293A5F8>
通常,您在以self
开头的类定义代码中看到的所有内容都是该类实例的属性。这些被称为实例变量。
类变量(即,所有对象实际上共享同一个变量)是在没有self.
前缀的情况下定义的。例如,
class C:
cls_var = 'static' # this is a class attribute
def __init__(self, x):
self.x = x # this is an instance attribute
def inst_f(self):
pass
a = C('this is a')
b = C('this is b')
print a.x is b.x # False
print a.cls_var # static
print a.cls_var is b.cls_var # True