[英]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.