Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 9, 2008 18:37:27

124bit
От:
Зарегистрирован: 2008-04-10
Сообщения: 121
Репутация: +  0  -
Профиль   Отправить e-mail  

классы-классы, словари)

У меня есть словарь и два класса.. в словаре куча { имя : класс1.фунуция - без скобок в конце, имя : класс1.фунуция }. Мне надо из второго класса запускать эти функции с какими то аргументами. Когда я это пытаюсь делать - вылазит TypeError: unbound method www4buxorg_serfer() must be called with serfers instance as first argument (got str instance instead) .. как туда впихнуть ихний сэлф… или я нихрена не понимаю, и это нада както не так реализовывать?



Отредактировано (Окт. 9, 2008 18:39:26)

Офлайн

#2 Окт. 9, 2008 19:02:07

124bit
От:
Зарегистрирован: 2008-04-10
Сообщения: 121
Репутация: +  0  -
Профиль   Отправить e-mail  

классы-классы, словари)

и вообще.. вот я создал модули module1.py
\\module1.py
class arcm:
def k(self):
print ‘jo-pe-re-se-te’
class serfers(arcm):
self.k()
def traatata(self,a):

print a
_____________________________________конец

терь я его хочу использовать:
from module1 import serfers
print sefrers.traatata('joptet')

выводит ошибку TypeError: unbound method thinkbuxcom_serfer() must be called with serfers instance as first argument (got str instance instead) как так сдела, чтоб его запустить?,



Отредактировано (Окт. 9, 2008 19:02:44)

Офлайн

#3 Окт. 9, 2008 19:53:54

shiza
От:
Зарегистрирован: 2007-07-03
Сообщения: 1073
Репутация: +  0  -
Профиль   Отправить e-mail  

классы-классы, словари)

124bit
У меня есть словарь и два класса.. в словаре куча { имя : класс1.фунуция - без скобок в конце, имя : класс1.фунуция }. Мне надо из второго класса запускать эти функции с какими то аргументами. Когда я это пытаюсь делать - вылазит TypeError: unbound method www4buxorg_serfer() must be called with serfers instance as first argument (got str instance instead) .. как туда впихнуть ихний сэлф… или я нихрена не понимаю, и это нада както не так реализовывать?
class c1:
def f1(self, x):
print 'c1-f1 x:', x

class c2:
def f2(self, x):
print 'c2-f2 x:', x

o1 = c1()
o2 = c2()

d = {'obj1_f1':o1.f1, 'obj2_f2':o2.f2}

d['obj2_f2'](23)



Офлайн

#4 Окт. 9, 2008 19:55:23

shiza
От:
Зарегистрирован: 2007-07-03
Сообщения: 1073
Репутация: +  0  -
Профиль   Отправить e-mail  

классы-классы, словари)

Ты эта, из помоему из классов забываешь объекты создавать.
Сами по себе классы - это только шаблоны, по которым создаются уже объекты.



Отредактировано (Окт. 9, 2008 19:55:56)

Офлайн

#5 Окт. 9, 2008 21:12:15

124bit
От:
Зарегистрирован: 2008-04-10
Сообщения: 121
Репутация: +  0  -
Профиль   Отправить e-mail  

классы-классы, словари)

тьфу.. я и так пробывал и просто вызвал - не работало(( странно. ща перепробую)



Офлайн

#6 Окт. 9, 2008 22:59:23

ice
От:
Зарегистрирован: 2008-01-12
Сообщения: 156
Репутация: +  0  -
Профиль   Отправить e-mail  

классы-классы, словари)

class c1:
def f1(self, x):
print 'c1-f1 x:', x

class c2:
def f2(self, x):
print 'c2-f2 x:', x


d = {'obj1_f1':c1().f1, 'obj2_f2':c2().f2}

d['obj2_f2'](23)
from module1 import serfers
print sefrers().traatata('joptet')



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version