簡體   English   中英

如何在python中使類字段[list]只讀?

[英]How to make a class field [list] read-only in python?

我班上有self.some_field = []
我在詢問有沒有辦法讓這個列表像一個屬性一樣只讀?

你需要把它變成一個屬性...:例如,在__init__

self._some_field = []

然后在課堂上:

@property
def some_field(self):
    return self._some_field

請注意,這並不能使列表本身不變:什么會失敗的公司,比如分配

self.some_field = 'bah'

不是說變種人的召喚,比如說,

self.some_field.append('blah')

如果你想讓字段不可變,根據定義,它不能是一個列表(因為列表是一個可變序列) - 它必須是你需要為此目的定義的其他類型的序列(一個不可變的序列)。

如果您指的是屬性,則將其設為只讀屬性。 如果你的意思是列表本身,那么使用元組代替,因為它們是不可變的。

暫無
暫無

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

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