簡體   English   中英

如何在沒有 Setter 的情況下使用 Getter

[英]How to Use Getter Without Setter

我正在使用 python 2.7。

我有以下課程:

class Test:

    def __init__(self):
        self._pos_a = ['test_1']
        self._pos_b = ['test_2']


    @property
    def pos_a(self):
        return self._pos_a

    @property
    def pos_b(self):
        return self._pos_b


    if __name__ == "__main__":
        x = Test()
        x.pos_a = True
        print x.pos_a

>>> True

我的理解是,通過使用屬性裝飾器,我基本上是為我的兩個類屬性中的每一個建立一個 getter 方法。 不過,由於我沒有創建 setter 方法,因此我希望將“True”分配給 x.pos_a 會引發錯誤。 錯誤應該是我無法設置有 getter 方法但沒有 setter 方法的屬性的值。 相反,該值設置為“True”,並且打印沒有問題。 我如何實現這一點以實現該結果? 我希望用戶能夠“獲取”這些值,但他們不應該能夠設置它們。

您需要從object繼承屬性才能正常工作。

class Test(object):
    ...

那是因為屬性是用描述符實現的,並且只有新樣式的類支持描述符。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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