簡體   English   中英

如何從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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM