JavaScript zawiera literały obiektowe, np.Czy literały obiektowe są Pythoniczne?
var p = {
name: "John Smith",
age: 23
}
i .NET ma typy anonimowe, np.
var p = new { Name = "John Smith", Age = 23}; // C#
Coś podobnego może być emulowane w Pythonie przez (AB) z wykorzystaniem wymienionych argumentów:
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)
Zastosowanie:
p = literal(name = "John Smith", age = 23)
print p # prints: literal(age = 23, name = 'John Smith')
print p.name # prints: John Smith
Ale jest to rodzaj kodu uznane za pythonowy?
"pythonic", lubię to słowo! –
Pętla 'for' w twoim' __init__' może być zamieniona na 'self .__ dict__ = kw'' –