ในไพ ธ อนฉันต้องสร้างอินสแตนซ์ของคลาสโดยรู้ชื่อของมันในสตริง แต่คลาสนี้ 'อยู่' ในโมดูลที่อิมพอร์ตแบบไดนามิก ตัวอย่างดังต่อไปนี้:
สคริปต์ระดับโหลดเดอร์:
import sys
class loader:
def __init__(self, module_name, class_name): # both args are strings
try:
__import__(module_name)
modul = sys.modules[module_name]
instance = modul.class_name() # obviously this doesn't works, here is my main problem!
except ImportError:
# manage import error
สคริปต์โมดูลโหลดบางส่วนแบบไดนามิก:
class myName:
# etc...
ฉันใช้การจัดเรียงนี้เพื่อทำให้โมดูลโหลดแบบไดนามิกใด ๆ ที่จะใช้โดยคลาสโหลดเดอร์หลังจากพฤติกรรมที่กำหนดไว้ล่วงหน้าบางอย่างใน Dyn-load-modules ...
module = __import__(module, fromlist=[name])ทำงานให้ฉันเท่านั้น