SORU
14 EYLÜL 2008, Pazar


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
15 EYLÜL 2008, PAZARTESİ


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...

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • edwin maldonado

    edwin maldon

    28 Mart 2009
  • Mark Halberstadt

    Mark Halbers

    19 ŞUBAT 2010
  • Snazzy Labs

    Snazzy Labs

    9 Aralık 2008