簡體   English   中英

如何即時導入一個類並將其實例化為對象?

[英]How to import a class on the-fly-and Instantiate it as an object?

我知道我們可以使用exec即時加載模塊(從字符串中)

例如

path  = 'A.B'
class = 'C'
exec( "from %s import %s" %(path, class) )

但是如何將其實例化為對象c? 順便說一句,上方是從字符串加載模塊的最佳方法嗎? 它看起來不是很安全。 謝謝

問候,約翰

對於python <= 2.6,可以使用內置的__import__函數:

m = __import__('A.B', globals(), locals(), ['C'])
C = getattr(m, 'C')
c = C()
import importlib
m = importlib.import_module('A.B')
C = getattr(m, 'C')
c = C()

出於某些奇怪的原因,如果您使用的是較低版本,則可以從2.7標准庫中獲取importlib。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM