Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 27, 2008 13:30:42

ais
От:
Зарегистрирован: 2008-06-27
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Как добавить переменные класса из параметров конструкта?

Что бы как то так

class Test:
def __init__(self, x):
AddVariables() #?


test = Test(20)
print test.x



Отредактировано (Июнь 27, 2008 13:58:02)

Офлайн

#2 Июнь 27, 2008 13:46:53

playpauseandstop
От:
Зарегистрирован: 2007-10-31
Сообщения: 77
Репутация: +  0  -
Профиль   Отправить e-mail  

Как добавить переменные класса из параметров конструкта?

def __init__(self, x):
    self.x = x



Офлайн

#3 Июнь 27, 2008 13:57:43

ais
От:
Зарегистрирован: 2008-06-27
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Как добавить переменные класса из параметров конструкта?

Думал из поста будет понятно что имеется в виду добавление не руками.



Офлайн

#4 Июнь 27, 2008 14:09:07

playpauseandstop
От:
Зарегистрирован: 2007-10-31
Сообщения: 77
Репутация: +  0  -
Профиль   Отправить e-mail  

Как добавить переменные класса из параметров конструкта?

class Sample(object):
    def __init__(self, *args, **kwargs):
        self.__dict__.update(kwargs)
s = Sample(x=1, y=2, z=3)
s.x, s.y, s.z



Отредактировано (Июнь 27, 2008 14:09:22)

Офлайн

#5 Июнь 27, 2008 14:14:33

ais
От:
Зарегистрирован: 2008-06-27
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Как добавить переменные класса из параметров конструкта?

playpauseandstop
class Sample(object):
    def __init__(self, *args, **kwargs):
        self.__dict__.update(kwargs)
s = Sample(x=1, y=2, z=3)
s.x, s.y, s.z
Это тоже не то, тут интерфейс класса задается снаружи.



Офлайн

#6 Июнь 27, 2008 14:17:42

poltergeist
От:
Зарегистрирован: 2007-02-28
Сообщения: 522
Репутация: +  0  -
Профиль   Отправить e-mail  

Как добавить переменные класса из параметров конструкта?

ais Вы сами понимаете чего хотите?



Офлайн

#7 Июнь 27, 2008 14:26:22

bialix
От:
Зарегистрирован: 2006-07-13
Сообщения: 774
Репутация: +  1  -
Профиль   Отправить e-mail  

Как добавить переменные класса из параметров конструкта?

__slots__



Офлайн

#8 Июнь 27, 2008 14:26:47

ais
От:
Зарегистрирован: 2008-06-27
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Как добавить переменные класса из параметров конструкта?

poltergeist
ais Вы сами понимаете чего хотите?
Определенно.

def __init__(self,a,b,c,d,e):
self.a = a
self.b = b
self.c = c # вот этого я не хочу писать руками.
self.d = d
self.e = e



Офлайн

#9 Июнь 27, 2008 14:39:54

ais
От:
Зарегистрирован: 2008-06-27
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Как добавить переменные класса из параметров конструкта?

bialix
__slots__
Из этого примера

class point(object):
__slots__ = ('x', ‘y’)
def __init__(self, x, y):
self.x = x
self.y = y

я не особо вижу как он может помочь.



Офлайн

#10 Июнь 27, 2008 14:41:28

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Как добавить переменные класса из параметров конструкта?

ais
# вот этого я не хочу писать руками.
Поэтому второй вариант предложенный выше вполне подходит. Там “оно само” делается.

Или чуть иначе:
def __init__(self,a,b,c,d,e):
       self.__dict__.update( locals() )



Отредактировано (Июнь 27, 2008 14:47:00)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version