Ind*_*pta 2 python class class-variables
我有以下代码段:
class A:
def __init__(self):
self.state = 'CHAT'
def method1(self):
self.state = 'SEND'
def printer(self):
print self.state
class B(A):
def method2(self):
self.method1()
print self.state
ob_B = B()
ob_A = A()
ob_B.method2()
ob_A.printer()
Run Code Online (Sandbox Code Playgroud)
这给了我输出:
SEND
CHAT
Run Code Online (Sandbox Code Playgroud)
我想要它打印:
SEND
SEND
Run Code Online (Sandbox Code Playgroud)
也就是说,当通过调用 self.method1 修改 self.state 时,我希望它修改A 实例中B.method2已经存在的值。self.state = 'CHAT'我怎样才能做到这一点?
该实例作为第一个参数传递给每个方法,self实例也是如此。您正在设置实例属性而不是类变量。
class A:
def __init__(self):
A.state = 'CHAT'
def method1(self):
A.state = 'SEND'
def printer(self):
print A.state
class B(A):
def method2(self):
self.method1()
print B.state
ob_B = B()
ob_A = A()
ob_B.method2()
ob_A.printer()
Run Code Online (Sandbox Code Playgroud)
SEND
SEND
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21141 次 |
| 最近记录: |