日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

python 动态导入类_从动态导入模块中类的字符串名动态实例化?

發(fā)布時(shí)間:2025/3/20 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 动态导入类_从动态导入模块中类的字符串名动态实例化? 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

tl;博士

使用importlib.import_module導(dǎo)入根模塊,并使用getattr函數(shù)按名稱加載類:# Standard import

import importlib

# Load "module.submodule.MyClass"

MyClass = getattr(importlib.import_module("module.submodule"), "MyClass")

# Instantiate the class (pass arguments to the constructor, if needed)

instance = MyClass()

解釋

您可能不想使用__import__按名稱動(dòng)態(tài)導(dǎo)入模塊,因?yàn)樗辉试S您導(dǎo)入子模塊:>>> mod = __import__("os.path")

>>> mod.join

Traceback (most recent call last):

File "", line 1, in

AttributeError: 'module' object has no attribute 'join'

Here是python文檔所說的__import__:Note: This is an advanced function that is not needed in everyday

Python programming, unlike importlib.import_module().

相反,使用標(biāo)準(zhǔn)^{}模塊按名稱動(dòng)態(tài)導(dǎo)入模塊。使用^{}可以按類的名稱實(shí)例化類:import importlib

my_module = importlib.import_module("module.submodule")

MyClass = getattr(my_module, "MyClass")

instance = MyClass()

你也可以寫:import importlib

module_name, class_name = "module.submodule.MyClass".rsplit(".", 1)

MyClass = getattr(importlib.import_module(module_name), class_name)

instance = MyClass()

此代碼在python≥2.7(包括python 3)中有效。

總結(jié)

以上是生活随笔為你收集整理的python 动态导入类_从动态导入模块中类的字符串名动态实例化?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。