1. 程式人生 > >python 面向對象 反射

python 面向對象 反射

getattr style ssm 字符串 什麽 屬性 用例 python asa

  1. 什麽是反射
    通過字符串的形式操作對象相關的屬性。python中的一切事物都是對象(都可以使用反射)
  2. hasattr
    判斷屬性方法是否存在
  3. getattr
    獲取屬性方法
  4. setattr
    設置屬性方法
  5. delattr
    刪除屬性方法
  6. 使用例子
    class Person:
        sex = male
        def __init__(self,name):
            self.name = name
        def sayHi(self):
            print(hi, +self.name+!)
        @classmethod
        def
    show_Type(cls): print(cls.sex) hsr = Person(hsr) #判斷是否存在 has_arg = hasattr(hsr,name) print(has_arg) has_method = hasattr(hsr,sayHi) print(has_method) #獲取 name = getattr(hsr,name) print(name) func = getattr(hsr,sayHi) func() #設置 setattr(hsr,name,cool) setattr(hsr,sayHi,lambda
    self:self.name) #刪除 delattr(hsr,name) delattr(hsr,sayHi) #反射類、模塊的屬性和方法相同,將對象換成對應的名字就行 #獲取自己模塊的名字,使用sys.modules[__name__]

python 面向對象 反射