class Person:
def __init__(self, name):
self.name = name
@property
def name(self):
print("get name called")
return self._name
@name.setter
def name(self, name):
print("set name called")
if not isinstance(name, str):
raise TypeError("Expected a string")
self._name = name
person = Person("Tom")
print(person.name)
这里的问题就是打印出来的是tom 后面的@property 根本没有执行,我想说的是为啥没有执行呢?
我在网上看到的后面的都会执行,这里的settrt 和getter 有啥区别
是代码的问题:
__init__
函数里,self.name = name
应该是self._name = name
。