反射機制
反射機制的本質是以字符串形式在對象或模塊中進行添加,查找,刪除,獲取成員等操作,是一種基於字符串的一系列事件驅動。
相關內置函數
- getattr(object, name[, default])
獲取object對象中的name屬性並返回其值,在name不存在時返回default,不設置則會拋出一個AttributeError。
- setattr(object, name, value)
設置object對象中name屬性的值爲value,name不存在時則創建屬性並賦值。
- hasattr(object, name)
判斷object對象中是否含有name屬性,含有返回True,否則返回False。
- delattr(object, name)
刪除object對象中的name屬性。
- import(name[, globals[, locals[, fromlist[, level]]]])
參數爲字符串,導入參數同名的模塊或字符串。
反射機制的應用
有了以上內置函數,我們可以非常便利的實現動態的函數調用,模塊導入,以及對象成員的“增刪改查”等操作。