我试图在我的类中添加属性装饰器,但出了问题。
我有6个错误!!!
我的代码:
class person:
def __init__ (self, name, age):
self.name = name
self.age = age
@property
def age(self):
return self.age
@age.setter
def age(self, new_age):
if isinstance(new_age, int):
self.age = new_age
def __str__ (self):
return f"{self.name} is {self.age}"
p1 = person('moe',34)
print(person)
您正在使用相同的名称,然后该属性将隐藏该成员。这使得这些递归问题成为self.age
在setter
中一次又一次地调用自身。您需要使用不同的属性名,如下所示:
class person:
def __init__ (self, name, age):
self.name = name
self._age = age
@property
def age(self):
return self._age
@age.setter
def age(self, new_age):
if isinstance(new_age, int):
self._age = new_age
def __str__ (self):
return f"{self.name} is {self.age}"
p1 = person('moe',34)
print(p1)
Object.defineProperty(target, key, { writable: false }); } @ReadOnly // notice there are no `()` name: string; const t = new Test(); t.name = 'jan';
我用@Watch装饰器监听属性变化,没起作用。这个下面是代码: 尝试counter属性在其他地方被修改,希望在控制台看到Counter changed from ... to ...的日志输出,咋就是没任何输出。希望找出问题所在,使@Watch正常工作。问题在哪呢?
问题内容: 我已经为Employee类的父类是抽象的并且父类中的clone()方法是抽象的编写了此克隆方法。我想用此代码复制Employee对象的原始数据类型,而不是复制每个原始数据单独键入,但是此代码在我调用clone()方法的行中有问题。(此代码在Employee类中) 错误是:来自对象类型的方法clone()不可见。 但是我的Employee类在类层次结构中,可以访问Object类中受保护的
问题内容: globalList = [] class MyList: def init(self): self._myList = [1, 2, 3] 结果: 我面临的问题是mL1.myList.append(4)和mL1.myList.extend([5,6,“ eight”,“ IX”])不会修改mL1对象中的_myList属性。我该如何解决该问题? 问题答案: 我为类对象定义了方法appe
我有一个关于书库的问题...我想写一个有3个堆栈的程序,我想在每个堆栈上添加这些操作(我应该使用数组): 1.创建堆栈2。按3号。流行音乐4号。显示每个堆栈的顶部 我写的程序,但我遇到了这些错误: 错误4错误LNK2019:未解析的外部符号“public:int\u thiscall stack::IsFull2(void)”(?IsFull2@stack@@QAEHXZ)在函数“public:v
Python @classmethod 为什么不能调用 @property 装饰的属性 ? AttributeError: 'property' object has no attribute 依然不是没清楚