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

  • kindlechatmail

    kindlechatma

    25 AĞUSTOS 2010
  • Tina Chen

    Tina Chen

    26 Mayıs 2012
  • xiaoyu85

    xiaoyu85

    20 ŞUBAT 2010