![](/img/trans.png)
[英]how should i access a class variable from another class in python?
[英]How to access a class variable from another class in python?
我有以下代碼段:
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()
這給了我輸出:
SEND
CHAT
我要打印:
SEND
SEND
也就是說,當B.method2
通過調用self.method1修改self.state時,我希望它在A的實例中修改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()
SEND
SEND
ob_B = B()
ob_A = A()
ob_B.method2()
ob_A.printer()
您需要調用ob_B.method2()-在沒有括號的情況下,該語句只是對該函數的引用,而實際上並未調用它。
您可以使用B的對象來調用printer()方法,以便獲得更新后的值。
ob_B = B()
ob_A = A()
ob_B.method2()
ob_B.printer()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.