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

  • jkimisyellow

    jkimisyellow

    6 Mayıs 2009
  • Lamarr Wilson

    Lamarr Wilso

    27 Aralık 2008
  • The White House

    The White Ho

    21 Ocak 2006