python的getattr()


函數原型:

getattr(object, name[, default])

name:str類型

default:如果不存在name屬性,設置default則返回default,不設置返回AttributeError.

class A:
    name = "A"
    def get_name(self):
        print(self.name)

#這里的成員變量和成員函數都被稱為屬性 a
= A() na = getattr(a, "name") #輸出:A 獲得name屬性 print(na) fun = getattr(a, "get_name") #輸出:<bound method A.get_name of <__main__.A object at 0x0000000000A7A0F0>> 獲得函數屬性 print(fun)

getattr(a, 'bar2', 3) # 屬性 bar2 不存在,但設置了默認值



與__getattr__的區別:
  • __getattr__是類的內置方法,當找不到某個屬性時會調用該方法;找到就不會調用.
  • getattr與類無關.
  • 一個例子:作為data的代理類,可以以這種方式來使用data的屬性.
  • class DataProxy(...):
    
        def __getattr__(self, item):
            return getattr(self.data, item)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM