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

  • funbro1

    funbro1

    11 Aralık 2007
  • jbignacio

    jbignacio

    13 Mart 2006
  • pjtoohot

    pjtoohot

    15 NİSAN 2008