在派生类中使属性只读,可以通过在派生类中使用@property
装饰器定义只读属性。这样,在派生类中,该属性只能被读取,而不能被修改。
例如,假设我们有一个基类Base
,其中有一个属性name
,我们希望在派生类Derived
中将其变为只读属性:
class Base:
def __init__(self, name):
self._name = name
@property
def name(self):
return self._name
class Derived(Base):
@property
def name(self):
return super().name
在这个例子中,我们在Derived
类中使用@property
装饰器定义了一个只读属性name
,该属性的值由基类Base
中的name
属性获取。这样,在Derived
类中,我们无法修改name
属性的值。
如果我们尝试在Derived
类中修改name
属性,如下所示:
d = Derived('hello')
d.name = 'world'
将会抛出AttributeError
异常,因为name
属性已经被定义为只读属性。
云+社区技术沙龙[第7期]
企业创新在线学堂
云+社区技术沙龙[第19期]
企业创新在线学堂
企业创新在线学堂
腾讯自动驾驶系列公开课
腾讯位置服务技术沙龙
云+社区沙龙online [国产数据库]
DBTalk
腾讯云GAME-TECH游戏开发者技术沙龙
领取专属 10元无门槛券
手把手带您无忧上云