Уведомления

Группа в Telegram: @pythonsu

#1 Июль 4, 2010 22:15:06

StreeFed
От:
Зарегистрирован: 2009-07-21
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Вызов функции класса из другого класса или функции (AttributeError)

Добрый вечер, уважаемые форумчане!
Собственно столкнулся с сабжом…

Допустим есть файл one.py с классом:

class Test:

def __init__(self):
pass

def process(self):
print "test"
в файле two.py импортирую его таким образом:
from one import Test
затем отсюда же из функции call пытаюсь обратиться к Test.proccess():
def call():
Test.process()
Выдает Test instance has no attribute ‘proccess’

Собстно созрел вопрос - как обращаться к функциям класса из вне?

Буду признателен за помощь.



Офлайн

#2 Июль 4, 2010 22:36:31

bw
От:
Зарегистрирован: 2007-09-26
Сообщения: 938
Репутация: +  20  -
Профиль   Адрес электронной почты  

Вызов функции класса из другого класса или функции (AttributeError)

Test().process()
Test это класс, а не экземпляр в данном примере. Но если судить по ошибке, то вы просто до крайности не внимательны и вызываете метод proccess, вместо process (опять же, из примера это не очевидно).

p.s. Никакой тайны извне не существует.

..bw



Отредактировано (Июль 4, 2010 22:37:12)

Офлайн

#3 Июль 4, 2010 23:25:45

StreeFed
От:
Зарегистрирован: 2009-07-21
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Вызов функции класса из другого класса или функции (AttributeError)

ха, я допустил ошибку в слове process как в примере так и в рабочем классе, спасибо



Офлайн

#4 Ноя. 23, 2010 19:24:56

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

Вызов функции класса из другого класса или функции (AttributeError)

Пожалуйста помогите. не буду из-за мелочи создавать новую тему
Изучаю классы (где-то советовали взять в пример куб)

class retrem:

def compress(self, compressnumber): # сжатие куба
self.h/=compressnumber
self.l/=compressnumber
self.w/=compressnumber
print ‘h =’, self.h; print ‘l =’, self.l; print ‘w =’, self.w

def stretch(self,strethnumber): # растянуть куб
self.stret = strethnumber
retrem.compress(self.stret) # <–


вопрос такой: КАК ПРАВИЛЬНО ВЫЗВАТЬ ИЗ МЕТОДА stretch метод compress. У меня выводит ошибку:
… unbound method compress() must be called with retrem instance as first argument (got int instance instead)



Офлайн

#5 Ноя. 23, 2010 19:48:22

Soteric
От:
Зарегистрирован: 2010-09-19
Сообщения: 352
Репутация: +  20  -
Профиль   Отправить e-mail  

Вызов функции класса из другого класса или функции (AttributeError)

self.compress(...)



Офлайн

#6 Ноя. 23, 2010 21:36:41

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

Вызов функции класса из другого класса или функции (AttributeError)

Большое спасибо! Soteric respect )



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version