1. 程式人生 > >笨辦法學Python之將物件名的字串型別,轉化成相應物件

笨辦法學Python之將物件名的字串型別,轉化成相應物件

1,方法一:

class obj(object): 

      pass 

 a = eval('obj()')

 物件名的字串型別要加括號,用eval關鍵字來建立物件。

2,方法二:

#將用來建立物件的字串預編譯成code物件。

create_obj = compile('obj()', 'create_obj.py', 'eval') 

#需要建立的時候,直接使用code物件。#這樣會有效率的提升,因為code是預編譯過的,不用每次去編譯。

a = eval(create_obj)

3,方法三:

#這一個要放在全域性變數的位置,一旦放在類內,會自動執行這個類的開始到這行語句的內容,即上述內容執行兩遍。

module = __import__(file_name)

#由於getattr()是返回物件的屬性值,可以猜測import返回了一個物件。

 AClass = getattr(module, class_name_str)

 a = AClass() 或 a = new.instance(AClass).

4,方法四:

使用global()

#這裡的next是物件名的字串形式(不加括號)。

example = globals()[next]()