__getattr__ vs. __getattribute__

Share Button

__getattr__ Kullanımı:
__getattr__, uygulamada bir sınıfın varolmayan bir özelliğine ulaşılmak istendiğinde çağırılen bir magic metoddur.

class Order(object):
    def __init__(self, order_id=None, amount=None, currency=None, *args, **kwargs):
        self.order_id = None
        self.amount = amount
        self.currency = currency

    def __getattr__(self, attr):
        print "%s is called" % attr


order = Order(order_id='00001', amount=100, currency='TRL')
print order.amount
print order.original_amount


Çıktı:

100
original_amount is called
None

__getattribute__ Kullanımı:
__getattribute__, uygulamada bir sınıfın herhangibir özelliğine ulaşılmak istendiğinde çağırılen bir magic metoddur.

class Order(object):
    def __init__(self, order_id=None, amount=None, currency=None, *args, **kwargs):
        self.order_id = None
        self.amount = amount
        self.currency = currency

    def __getattribute__(self, attr):
        print "%s is called" % attr


order = Order(order_id='00001', amount=100, currency='TRL')
print order.amount
print order.original_amount

Çıktı:

amount is called
None
original_amount is called
None
Share Button

About İbrahim Gündüz

1983 yılında İstanbul’da doğdu. İlkokul yıllarında cobol ve basic le olan tanışması, yazılıma olan ilgisini arttırdı 2005 yılında. Uludağ Üniversitesi Teknik Bilimler Meslek Yüksek Okulu Elektronik bölümünden mezun olan Gündüz, çeşitli alanlarda faaliyet gösteren kurumlarda yazılım geliştirici olarak görev almıştır. Mesleki ilgi alanları, ölçeklenebilir sistemler, uygulama entegrasyonları ve ödeme sistemleridir. Halen Markafoni back end geliştirici olarak çalışmaktadır.

One comment

  • Eylül 10, 2015 - 3:13 am | Permalink

    Teşekkürler bilgi için. Keşke daha ayırt edici bir isim koysalarmış daha iyi olurmuş.

  • Bir Cevap Yazın

    E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir