Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 5, 2014 08:21:22

aCL
Зарегистрирован: 2013-11-13
Сообщения: 34
Репутация: +  0  -
Профиль   Отправить e-mail  

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

Есть примерно такой код:

class go:
 def __init__(self,_list,_cnt,_org='999'):
        self.list=_list
        self.count=_cnt
        self.org=_org
def make(text):
...
return a,b
_all=go(make(data))

Интерпретатор возвращает ошибку:

__init__() missing 1 required positional argument: '_cnt'

Если же создавать экземпляр примерно так:
_all=go(x,y)
ошибки не возникает. Насколько я понял, проблема в return a,b. Возможно ли обе эти переменные присвоить экземпляру _all, кроме как следующим способом:

x,y=make(data)
_all=go(x,y)

Одна лишняя строчка не принципиальна, просто на будущее решил этот вопрос для себя прояснить)
Спасибо.

Офлайн

#2 Фев. 5, 2014 09:00:31

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

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

_all=go(*make(data))
Потому что конструктор принимает параметр как кортеж (a,b) а не как 2 переменные a,b . Символ * при передаче параметров означает передать аргумент перечисляемого типа по его элементам



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version