Bir nesneden Python sözlük'in alanlar
Eğer varsa bildiğiniz bir yerleşik işlevi rasgele bir nesneden bir sözlük kurmak mı? Böyle bir şey yapmak istiyorum:
>>> class Foo:
... bar = 'hello'
... baz = 'world'
...
>>> f = Foo()
>>> props(f)
{ 'bar' : 'hello', 'baz' : 'world' }
NOT:Yöntemleri vardır. Sadece tarlalar var.
Teşekkürler
CEVAP
Python güncel sürümleri içinde en iyi yöntem kullanmayı unutmayın . ben^>yeni tarzıyani sınıflar
class Foo(object):
...
Ayrıca, arasında bir fark var '' ve''. bir sınıf nesnesi yok Bir keyfi bir sözlük oluşturmak için . ben^>nesne, __dict__
kullanmak için yeterli. Genellikle, __dict__
iyi olmalı yani örnek sınıf düzeyi ve nitelikleri ile kendi yöntemleri seviyesi bildirebilirsiniz. Örneğin:
>>> class A(object):
... def __init__(self):
... self.b = 1
... self.c = 2
... def do_nothing(self):
... pass
...
>>> a = A()
>>> a.__dict__
{'c': 2, 'b': 1}
Alternatif olarak, yapmak istediğiniz ne bağlı olarak, dict gelen devralmak için güzel olabilir. Daha sonra sınıfzatenbir sözlük, ve eğer isterseniz getattr geçersiz kılma ve/veya setattr ile arayıp dict ayarlamak için. Örneğin:
class Foo(dict):
def __init__(self):
pass
def __getattr__(self, attr):
return self[attr]
# etc...
Neden sesleniyorsun .python bir sözlük...
'json modülü s, dönüştürür sözlük...
Bölme Python bir sözlük için noktalı v...
Nasıl sözlük olarak değişken anahtar d...
Nasıl bir dize python-3'te bir sözlük ...