gpt4 book ai didi

名称开头没有 '_' 的 Python 类只读变量

转载 作者:太空宇宙 更新时间:2023-11-04 07:07:11 24 4
gpt4 key购买 nike

您好,我有一个类代表或本地日历(AD 除外)在这里,我希望所有这些类属性都是只读

class BSDate(object):

def __init__(self, year, month, date):
self._year = year
self._month = month
self._date = date

在 Python 解释器中,我想得到月份,所以我必须这样做:

x = BSDate(2072,5,2)
x._month

但我想通过简单地调用来获得月份

x.month

我该如何解决这个问题。

最佳答案

class BSDate(object):
def __init__(self, year, month, date):
self._year = year
self._month = month
self._date = date

@property
def month(self):
return self._month

您可以保留它,因为您现在可以使用 obj.month 访问它,如果有人尝试 obj.month = val<,它会引发 AttributeError/。但是,如果您想在运行时通知用户此行为和/或有关错误消息的更多信息,请按如下方式实现相应的 setter 。

    @property.setter
def month(self, value):
# self._month = value if you want to set
raise AttributeError("Very good error message")
# or just print to terminal that can't set and go ahead

关于名称开头没有 '_' 的 Python 类只读变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36660009/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com