SORU
2 Kasım 2010, Salı


Getattr() tam olarak ne ve nasıl kullanırım?

reading about the getattr() function ettim. Sorun hala onun kullanım fikrini kavrayabilir. getattr() getattr(li, "pop") aynı olmasıdır hakkında anladığım tek şey li.pop arama.

Kitap o kadar çalıştırma adını bilmeden bir işlev için bir başvuru almak için nasıl kullandığınız bahsederken anlamadım. Belki de bu, genel olarak programlama bir çaylak olarak benim. Herkes bu konuda biraz ışık tutabilir? Ne zaman bunu tam olarak nasıl kullanabilirim?

CEVAP
2 Kasım 2010, Salı


Python nesne öznitelikleri olabilir. Bir nesnenin çeşitli özellikleri olan person, örneğin: name, gender, vb. Erişim bu özelliklere yöntemleri veya veri nesneleri () genellikle yazılı: person.name, person.gender, person.the_method(), vb.

Ama eğer zamanda öznitelik adı program yazma bilmiyorsun eğer mi? Örneğin öznitelik adı bir değişken attr_name adında saklı.

eğer

attr_name = 'gender'

sonra, yazmak yerine

gender = person.gender

yazabilirsiniz

gender = getattr(person, attr_name)

Bazı uygulama:

Python 3.4.0 (default, Apr 11 2014, 13:05:11)

>>> class Person():
...     name = 'Victor'
...     def say(self, what):
...         print(self.name, what)
... 
>>> getattr(Person, 'name')
'Victor'
>>> attr_name = 'name'
>>> person = Person()
>>> getattr(person, attr_name)
'Victor'
>>> getattr(person, 'say')('Hello')
Victor Hello
>>> 

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Carlos Delgado

    Carlos Delga

    21 HAZİRAN 2011
  • DONFANTASTICKYPESS

    DONFANTASTIC

    1 Temmuz 2007
  • hytchme

    hytchme

    9 Mart 2014