python中getattr函數妙用

函數說明

getattr(object, name, default=None)

object:類實例
name:str 屬性名
default:str 如果沒有查找到,用該值替代

用法

實現反射,主要參考django的源碼

class Test():
    def __init__(self):
        self.methods = ['method1', 'method2', 'method3']

    def method1(self):
        print('Method1')

    def method2(self):
        print('Method2')

    def method3(self):
        print('Method3')

    def test(self, target):
        if target in self.methods:
            func = getattr(self, target)
            func()
        else:
            print("無效調用")


if __name__ == '__main__':
    test = Test()
    target = 'method3'
    test.test(target)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章