我__class__在python中有一个问题.
文档说这__class__是类实例所属的类.所以我进行了一系列实验:
class counter:
count = 0
def __init__(self):
self.__class__.count += 1
NewCounter1 = counter()
print NewCounter1.count #The result is 1
NewCounter2 = counter()
print NewCounter2.count #The result is 2
print NewCounter2.__class__.count is NewCounter2.count #result: True
Run Code Online (Sandbox Code Playgroud)
一切顺利.
然后我输入如下代码:
NewCounter2.__class__.count = 3
print NewCounter1.count #result:3
print NewCounter1.__class__.count #result:3
print NewCounter2.count #result:3
print NewCounter2.__class__.count #result:3
print NewCounter2.__class__.count is NewCounter2.count #result: True
Run Code Online (Sandbox Code Playgroud)
从上面的代码中,我认为可能NewCounter1.count等于NewCounter1,或者__class__.count,但以下代码让我感到惊讶:
NewCounter2.count = 5
print NewCounter1.count #result:3
print NewCounter1.__class__.count #result:3
print …Run Code Online (Sandbox Code Playgroud)