Я написал шаблон синглтона в python таким образом. Он работает нормально, но я не понимаю, что именно делают getattr и setattr ? В чем разница между getattr () и getattr , а также между setattr () и setattr в python? эти два метода ( getattr и setattr ) выполняют sth для внутреннего класса и как эти два метода различают guish для работы с внутренним классом, а не с внешним учебный класс ? заранее спасибо.
class Writer:
class __file_writer:
def __init__(self):
self.variable = None
def __str__(self):
return str(id(self))
instance = None
def __new__(cls, *args, **kwargs):
if not Writer.instance :
Writer.instance = Writer.__file_writer()
return Writer.instance
def __getattr__(self, item):
return getattr(self.instance,item)
def __setattr__(self, key, value):
return setattr(self.instance, key,value)
if __name__ == '__main__':
obj1=Writer()
obj1.name = 'moli'
print(obj1.name)
print(type(obj1))
obj2 = Writer()
obj2.name = 'ffff'
print(obj2.name)
print(obj1.name)
print(obj1)
print(obj2)