Rebra4
Март 18, 2015 21:58:06
Как можно динамически менять названия полей модели (обьектов), например:
b=Blog(name='first')
#изменить на
b=Blog(name_en='first2')
#Общем передавать название поля, как переменную.
JOHN_16
Март 18, 2015 23:00:36
Rebra4А передача аргументов словарем не сработает?
Пример:
class Test(object):
def __init__(self, name='', *args, **kargs):
if name :
self._name=name
else:
if kargs['name']:
self._name=kargs['name']
def hello(self):
return 'Hello, {}!'.format(self._name)
test=Test('John')
print test.hello()
args={'name': 'Mike'}
test=Test(**args)
print test.hello()
FishHook
Март 19, 2015 04:35:57
args, конечно же, отсюда надо убрать.
def __init__(self, name='', *args, **kargs):
Rebra4
Март 19, 2015 07:44:32
непонятно, как это использовать в моем объекте.
FishHook
Март 19, 2015 07:51:16
Rebra4
непонятно, как это использовать в моем объекте.
непонятно, что именно вам непонятно
Rebra4
Март 19, 2015 11:12:32
ну получил, я строку по вашему примеру ‘name_en’, что дальше? Как эту строку динамически вставлять в объект b=Blog(name_en='first2')?
FishHook
Март 19, 2015 11:19:25
b=Blog(**{"name_en": 'first2'})
Это нужно было?
Rebra4
Март 19, 2015 12:05:29
а если сделать запись вида:
FishHook
Март 19, 2015 12:10:19
Уважаемый, вы на форуме почти три года.
За эти три года вы не удосужились освоить элементарных базовых знаний о языке. Вы не знаете, что такое setattr и зачем он нужен? За три года?
Rebra4
Март 19, 2015 12:14:50
у меня был перерыв