Найти - Пользователи
Полная версия: Ошибка функции класса из другого класса. TypeError: unbound method
Начало » Python для новичков » Ошибка функции класса из другого класса. TypeError: unbound method
1
Orkshaman
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, подскажите можно это сделать по человечески?
pasaranax
попробуй объявить container_item_class выше чем container_class
wonderfulll
у вас в коде не правильная инициализация класса

должно быть так:
self.items_list.append(container_item_class())
Orkshaman
wonderfulll спасибо огромное, все заработало.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB