Я использовал методы получения @property и @setter. Имеет ли смысл получать в моем коде частные атрибуты, как здесь? Существуют ли другие способы получения частных (и защищенных) атрибутов?
class Person:
def __init__(self, name, surname):
self.__name = name
self.__surname = surname
@property
def name(self):
print("Retrieving private attribute (getter)")
return self.__name
@name.setter
def name(self, m):
if isinstance(m, str) and len(m) > 0:
self.__name = m
else:
print("Error: Must be a text with letters!")
print("Name changed")
#self.m = self.__name + self.__surname
def show(self):
print('Miss: ', self.__name, self.__surname)
os = Person('Alexandra', 'Houston') # object storing a person
os.name = 'Elizabeth'
print(os.name)
os.show()
Подробнее здесь: https://stackoverflow.com/questions/798 ... om-a-class