Форум сайта python.su
0
Добрый день, помогите, плиз, понять, как в вышеуказанном примере соотносятся переменные connection класса и инстанса?
class Database: connection = 4 print "Class Start" def __init__(self): print "Class Init!" def connect_dbs(self): if self.connection is not None: self.connection = self.connection + 1 return self.connection else: self.connection = 1 print "Initial Connecting" return self.connection print "Start" U = Database() for i in range(10): print U.connect_dbs() print "One more" U2 = Database() for i in range(10): print U2.connect_dbs() print Database.connection
Class Start Start Class Init! 5 6 7 8 9 10 11 12 13 14 One more Class Init! 5 6 7 8 9 10 11 12 13 14 4
Офлайн
568
lyolic
Пока у объекта нет собственного атрибута с именем name, он обращается к атрибуту класса __class__.name, а как только вы сделали первое присваивание self.name = …., вы объявили собственный атрибут, принадлежащий только объекту и не связанный с классом.
Отредактировано FishHook (Апрель 4, 2019 18:51:46)
Офлайн