Когда я объявляю класс, скажем,
class MyClass:
def __init__(self, value):
self.data = value
def show(self):
print self.data`
, тогда создание экземпляра
A = MyClass(1)
ведет себя так, как я и ожидал (вывод A.show
равен 1
),Но когда я создаю экземпляр без аргумента
B = MyClass
, а затем устанавливаю значение вручную
B.data = 2
, вызов B.show
возвращает TypeError: unbound method show() must be called with MyClass instance as first argument (got nothing instead)
.
Canкто-нибудь объяснит мне почему?