python中要建立乙個類的例項,要首先匯入該類或者該類所屬的模組,例如:
import
mymodule
myobject
=mymodule.myclass()
或者from
mymodule
import
myclass
myobject
=myclass()
如果要在程式中動態地建立類例項,也一樣要分兩步走,例如:m =
__import__('
mymodule')
c =getattr(m,
'myclass')
myobject
=c()
但是要注意:如果myclass並不在mymodule的自動匯出列表中(__all__),則必須顯式地匯入,例如:m =
__import__('
mymodule
', globals(), locals(), [
'myclass'])
c =getattr(m,
'myclass')
myobject
=c()
若要封裝的規範一些,可以這樣來做:
code
1class
activator:
2'''
本類用來動態建立類的例項
'''3
@staticmethod
4def
createinstance(class_name,
*args,
**kwargs):
5'''
動態建立類的例項。67
[parameter]
8class_name - 類的全名(包括模組名)
9*args - 類構造器所需要的引數(list)
10*kwargs - 類構造器所需要的引數(dict)
1112
[return]
13動態建立的類的例項
1415
[example]
16class_name = 'knightmade.logging.logger'
17logger = activator.createinstance(class_name, 'logname')
18'''
19(module_name, class_name)
=class_name.rsplit('.
', 1)
20module_meta
=__import__
(module_name, globals(), locals(), [class_name])
21class_meta
=getattr(module_meta, class_name)
22object
=class_meta(
*args,
**kwargs)
23return
object
24
C 動態建立類的例項
c 動態 建立類的例項,如果對效能要求不是很高,而且需要動態 建立類的例項的時候可以考慮使用以下的方法 1.定義兩個類 基類 public class basebusiness 子類 public class samplebusiness basebusiness 2.動態 建立類的例項 程式集名稱...
DevExpress 動態建立例項化類 (xpo)
使用xpo devexpress 時動態建立乙個持久化類。這樣方便訪問資料庫。使用devexpress 控制項 xpo xpobject 持久化物件 資料庫訪問 表 xpobject classprogram while xpodefault.session.getobjectbykey mycla...
動態建立Struct例項
pair struct.new token,word first word pair.new direction north second word pair.new verb go 定義乙個陣列,儲存這個新建的struct sentence first word,second word p sen...