Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 30, 2009 22:21:42

Orkshaman
От:
Зарегистрирован: 2009-11-25
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Ошибка функции класса из другого класса. TypeError: unbound method

class container_class():

def __init__(self):

print "container"

def load_items(self):

self.items_list=list()
self.items_list.append(container_item_class)
self.items_list[0].test_var()

def check_all_test_var(self):

self.items_list[0].output_test_var()

class container_item_class():

def __init__(self):

print "container item class on"


def output_test_var(self):

print self.a

def test_var(self):

self.a=5


container=container_class()
container.load_items()
container.check_all_test_var()
На выходе получаю ошибку:

Traceback (most recent call last):
File “.\class_check.py”, line 34, in <module>
container.load_items()
File “.\class_check.py”, line 11, in load_items
self.items_list.test_var()
TypeError: unbound method test_var() must be called with container_item_class in
stance as first argument (got nothing instead)
Причем если вызвать функцию таким образом:

test=container_item_class()
test.test_var()
test.output_test_var()
То на выходе получается все как положено:
container item class on
5
Но мне необходимо вызывать функцию из класса class container_class, подскажите можно это сделать по человечески?



Отредактировано (Ноя. 30, 2009 22:48:35)

Офлайн

#2 Ноя. 30, 2009 23:21:22

pasaranax
От:
Зарегистрирован: 2009-06-13
Сообщения: 574
Репутация: +  0  -
Профиль   Отправить e-mail  

Ошибка функции класса из другого класса. TypeError: unbound method

попробуй объявить container_item_class выше чем container_class



Офлайн

#3 Ноя. 30, 2009 23:27:16

wonderfulll
От:
Зарегистрирован: 2009-01-30
Сообщения: 72
Репутация: +  0  -
Профиль   Отправить e-mail  

Ошибка функции класса из другого класса. TypeError: unbound method

у вас в коде не правильная инициализация класса

должно быть так:

self.items_list.append(container_item_class())



Отредактировано (Ноя. 30, 2009 23:29:06)

Офлайн

#4 Дек. 1, 2009 16:55:25

Orkshaman
От:
Зарегистрирован: 2009-11-25
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Ошибка функции класса из другого класса. TypeError: unbound method

wonderfulll спасибо огромное, все заработало.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version