笨辦法學Python之將物件名的字串型別,轉化成相應物件
阿新 • • 發佈:2018-12-25
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]()