Ну ... на самом деле не рекомендуется делать такой тип персонала, так как он немного непонятен и склонен к ошибкам ... однако, вы можете сделать это следующим образом:
class MyClass(object):
names_list = []
_name = None
def get_name(self):
return self._name
def set_name(self, name):
assert self._name is None
self._name = name
self.names_list.append(name)
name = property(get_name, set_name)
obj1 = MyClass()
obj1.name = 'name1'
obj2 = MyClass()
obj2.name = 'name2'
print obj1.names_list
print len(obj1.names_list)
Это работает. Это ужасно. Использование некоторой внешней фабрики для обработки, вероятно, намного лучше. Если вы хотите хранить ссылки на существующие экземпляры, возможно, хорошим решением будет некоторый массив / словарь со слабыми ссылками.