Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 9, 2012 04:28:56

mego4iter
Зарегистрирован: 2012-09-09
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Не могу понять что не так работает. Помогите пожалуйста.

- написал небольшой класс

class Output: # имитирует выходной файл
    text = ''
    def __init__(self):
        self.text = '' 
    def write(self, string): 
        self.text += string
- запускаю его в IDLE
- создаю объект “о” моего класса:
>>> o = Output
-после пыаюсь в нём сделать заись
>>> o.write('123')
-на что получаю ошибку:
TypeError: write() takes exactly 2 arguments (1 given)

Как я понял он мне тонко намекнул) что функция пинемает 2 аргумета а я передал только один… Но ведь первый аргумент это объект класса, если его не передавать то тоже ошибка будет. Не могу понять что не так делаю.

Офлайн

#2 Сен. 9, 2012 08:55:23

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9854
Репутация: +  853  -
Профиль   Отправить e-mail  

Не могу понять что не так работает. Помогите пожалуйста.

ты не создал экземпляр класса



Офлайн

#3 Сен. 9, 2012 22:28:11

mego4iter
Зарегистрирован: 2012-09-09
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Не могу понять что не так работает. Помогите пожалуйста.

простите конечно, только вторую неделю его изучаю до этого на пхп писал….

а разве o = Output не создает экземпляр класса?

Отредактировано mego4iter (Сен. 9, 2012 22:28:37)

Офлайн

#4 Сен. 10, 2012 01:06:44

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9854
Репутация: +  853  -
Профиль   Отправить e-mail  

Не могу понять что не так работает. Помогите пожалуйста.

mego4iter
а разве o = Output не создает экземпляр класса?
нет, это просто к классу привязывается новое имя

>>> name = int
>>> print(name)
<class 'int'>
>>> name("101", 2)
5
>>>



Офлайн

#5 Сен. 10, 2012 07:09:22

mego4iter
Зарегистрирован: 2012-09-09
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Не могу понять что не так работает. Помогите пожалуйста.

Спасибо огромное… как понял, просто надо было добавить пустые скобки при запуске конструктора, а не просто написать название класса. Теперь прояснилось и всё работает)

А на самом деле обидно ошибка то такая элементарная…

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version