python反射(自省)

2021-09-28 19:28:40 字數 713 閱讀 1589

前幾天用owlready構建rdf檔案時,使用類定義實體,屬性和資料屬性,類名就是乙個object,所有建立例項都需要例項類,但是現在資料有很多,我需要讓他們自動建立類的例項,他們的型別為字串,我需要把他們轉為該字串對應的類名,這裡提供了乙個方法

eval()

例如

name=

'nametype'

#字串

class_name=

eval

(name)

#字串名轉為對應的類

#例項化

class_name(

)

file_name  模組名  #類所在檔案

module =

__import__

(file_name)

aclass =

getattr

(module, class_name_str)()

#根據字元在檔案裡查詢

a = aclass(

)

使用globals()和locals()

globals()

[func]()

#返回的是全域性對應函式,屬性,類的乙個列表

globals()

[func]()

#返回的是區域性對應函式,屬性,類的乙個列表

函式同樣也可以呼叫上面的方法1

python反射 自省

反射 自省 的簡單理解 通過類名例項化物件 得到類的所有屬性和函式,並實現呼叫 簡單示例 coding utf 8 class user object def init self self.name abc self.age 18 defintroduce self print my name is...

python 反射 自省 inspect

自省 自省。正如你所知道的,自省是指 可以檢視記憶體中以物件形式存在的其它模組和函式,獲取它們的資訊,並對它們進行操作。用這種方法,你可以定義沒有名稱的函式,不按函式宣告的引數順序呼叫函式,甚至引用事先並不知道名稱的函式。反射有時候我們會碰到這樣的需求,需要執行物件的某個方法,或是需要對物件的某個字...

Python 物件導向 反射 自省

反射 程式可以訪問,檢測和修改它本身狀態或行為的一種能力 自省 下面就介紹四種實現自省的函式,適用於類和物件 1,判斷object中有沒有乙個name字串對應的屬性或者方法 hasattr object,name 2,獲取object中name字串對應的屬性值或者方法位址,其中default引數的作...