но вот немного запутался, что попадает в 1й self а что во 2ой ??
def f(arg): print(arg.color)
class A: color = 'red' ...
>>>a = A() >>>b = A() >>> a.color 'red' >>> b.color 'red'
>>> A.color 'red'
>>> a = A() >>> b = A() >>> a.color 'red' >>> b.color 'red' >>> A.color = 'green' >>> a.color 'green' >>> b.color 'green' >>>
ZerG
http://wombat.org.ua/AByteOfPython/object_oriented_programming.html
a =A()
>>> class A: def __init__(self, color): self.color = color >>> a = A('red') >>> b = A('green') >>> a.color 'red' >>> b.color 'green'
class A: color = 'red' def metod(self): print(A().color + '!') #self заменил на A() a = A() a.metod() input()
class A(): a = 1 # атрибут класса def __init__(self, b): self.b = b # атрибут экземпляра класса a_I = A(2) print(a_I.a) print(a_I.b) a_II = A(3) print(a_II.a) print(a_II.b)
4kpt_IIIЭто понятно.
Атрибут класса является глобальным для всех экземпляров (объектов) построенных на его основании.Проще:
self.b = b # атрибут экземпляра класса