Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Python: Общие вопросы > class


Автор: YahоО 30.6.2023, 13:50
"Создание нового класса создает новый тип объекта, позволяя создавать новые экземпляры этого типа. К каждому экземпляру класса могут быть прикреплены атрибуты для поддержания его состояния."
Ожидаемое понимание этой цитаты - каждый новый экземпляр класса имеет незамутненное чистое самостоятельное определение атрибутов, значение атрибутов не унаследованы ни от чего бы то ни было, если это не делать специально и целенаправленно.
В действительности все наеборот))  :

Код

class am:
    def __init__(self,p=[]): 
        self.p = p
    def d(self, a):
        self.p.append(a)
        print(self.p)        

am1=am();  am1.d(1)
am2=am();  am2.d(2)

print()    
am3=am([]);am3.d(3)

При создании второго экземпляра у него автоматически появляются качества предыдущего экземпляра. 
А если уж очень хочется получить точно "чистый" экземпляр, то приходится указывать отдельно например так am3=am([]). Может это у меня только такой неправильный python? или так и должно быть?


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)