pythonのsetter、getterでNameError: name '' is not definedが出た場合の原因は、setterとgetterの順番が逆なのが原因である場合が多い。
setter => getterとするところを、getter => setterとしている。
- NameErrorが出る場合(setter, getterの順)
class Human:
@name.setter
def name(self, name):
self.__name = name
@property
def name(self):
return self.__name
@name.setter
def name(self, name):
self.__name = name
@property
def name(self):
return self.__name
human = Human()
human.name = "Taro"
print(human.name)
- NameErrorが出ない場合(getter, setterの順)
class Human:
@property
def name(self):
return self.__name
@name.setter
def name(self, name):
self.__name = name
@property
def name(self):
return self.__name
@name.setter
def name(self, name):
self.__name = name
human = Human()
human.name = "Taro"
print(human.name)