Являются ли объектные литералы Pythonic?Python

Программы на Python
Ответить
Anonymous
 Являются ли объектные литералы Pythonic?

Сообщение Anonymous »

В JavaScript есть объектные литералы, например

Код: Выделить всё

var p = {
name: "John Smith",
age:  23
}
и в .NET есть анонимные типы, например

Код: Выделить всё

var p = new { Name = "John Smith", Age = 23}; // C#
Нечто подобное можно эмулировать в Python с помощью (ab) использования именованных аргументов:

Код: Выделить всё

class literal(object):
def __init__(self, **kwargs):
for (k,v) in kwargs.iteritems():
self.__setattr__(k, v)
def __repr__(self):
return 'literal(%s)' % ', '.join('%s = %r' % i for i in sorted(self.__dict__.iteritems()))
def __str__(self):
return repr(self)
Использование:

Код: Выделить всё

p = literal(name = "John Smith", age = 23)
print p       # prints: literal(age = 23, name = 'John Smith')
print p.name  # prints: John Smith
Но считается ли такой код Pythonic?


Подробнее здесь: https://stackoverflow.com/questions/333 ... s-pythonic
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»