一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - Python動態導入模塊的方法實例分析

Python動態導入模塊的方法實例分析

2021-03-10 00:46Bigberg Python

這篇文章主要介紹了Python動態導入模塊的方法,結合實例形式較為詳細的分析了Python動態導入系統模塊、自定義模塊以及模塊列表的相關操作技巧,需要的朋友可以參考下

本文實例講述了Python動態導入模塊的方法。分享給大家供大家參考,具體如下:

 

一、正常導入模塊

正常模塊導入方式: import module(模塊路徑)

同時導入多個模塊:

?
1
import os,sys,socket

 

二、動態導入模塊

動態導入模塊允許我們通過字符串形式來導入模塊

 

2.1 __import__函數,接受一個字符串參數

?
1
2
3
4
5
6
7
8
import os, sys
my_sys = __import__('sys')
my_os = __import__('os')
print(sys.version)
print(my_sys.version)
print('-------------')
print(os.getcwd())
print(my_os.getcwd())

輸出:

3.5.2 (v3.5.2:4def2a2901a5, Jun 25 2016, 22:18:55) [MSC v.1900 64 bit (AMD64)]
3.5.2 (v3.5.2:4def2a2901a5, Jun 25 2016, 22:18:55) [MSC v.1900 64 bit (AMD64)]
-------------
G:\python\untitled\study8
G:\python\untitled\study8

我們將sys, os 模塊名當中參數傳入__import__函數中,可以看出my_sys 和my_os 其實就是相當于 os , sys 模塊了。

 

2.2 __import__函數導入自己的模塊

我們在lib包中有一個test.py模塊,我們如何通過__import__函數來導入該模塊呢?

?
1
2
3
4
5
6
7
8
9
# test.py內容
class Person(object):
  def __init__(self):
    self.name = 'bigberg'
# 導入模塊
mod = __import__('lib.test') # 相當于獲取了 lib 的路徑
print(mod)
obj = mod.test.Person()
print(obj.name)

輸出:

<module 'lib' from 'G:\\python\\untitled\\study8\\lib\\__init__.py'>
bigberg

 

2.3 動態導入模塊列表

?
1
2
3
4
5
6
moduleNames = ['sys', 'os', 'socket']
print(type(map))
# 在python3 map函數不在是內置函數,而是class,返回的結果是 可迭代對象
print(isinstance(map(__import__, moduleNames), Iterator))
modules = list(map(__import__, moduleNames))
print(modules[0].version)

輸出:

<class 'type'>
True
3.5.2 (v3.5.2:4def2a2901a5, Jun 25 2016, 22:18:55) [MSC v.1900 64 bit (AMD64)]

現在的modules[0] 就相當于 sys 模塊了。

 

2.4 importlib 模塊

動態導入模塊時,python官方建議使用importlib模塊,我們同樣導入lib/test.py

?
1
2
3
4
5
import importlib
mod = importlib.import_module('lib.test') # mod相當于 test.py本身了,于上例不同
print(mod)
obj = mod.Person()
print(obj.name)

輸出:

<module 'lib.test' from 'G:\\python\\untitled\\study8\\lib\\test.py'>
bigberg

希望本文所述對大家Python程序設計有所幫助。

原文鏈接:http://www.cnblogs.com/bigberg/p/7746828.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 肥胖老寡妇做性 | 国产拍拍视频一二三四区 | 欧美一级在线播放 | 男神插曲女生动漫完整版动漫 | 羞羞麻豆国产精品1区2区3区 | 日韩亚洲人成在线综合 | 门房秦大爷最新章节阅读 | 天天天做天天天天爱天天想 | 国产精品嫩草影院一二三区入口 | 欧美男男gaygayxxx| 男生和女生搞逼逼 | 草莓视频丝瓜 | 午夜久久免影院欧洲 | 日韩伦理在线观看 | 无套插入 | 日本三级做a全过程在线观看 | 欧美成a人片免费看久久 | 久久这里只有精品无码3D | 国产福利你懂的 | 亚洲国产精品综合福利专区 | 国产高清精品自在久久 | 亚洲欧洲日产v特级毛片 | 国产一区二区三区久久小说 | xxxx泡妞中国 | 精品在线免费播放 | 色色色色网站 | 亚洲国产日韩欧美mv | 天仙tv微福视频 | 国产欧美日韩一区二区三区在线 | 极品妖艳许清赵丽全文免费阅读 | 国产精品久久久久一区二区三区 | 日韩欧美在线观看综合网另类 | 桃乃木香在线 | 免费深夜福利 | 99国产成人精品2021 | 全肉np巨肉一女np高h双龙 | 女仆掀起蕾丝裙被打屁股作文 | chinese一tk视频丨vk | 3d蒂法受辱在线播放 | 亚洲乱码一二三四区国产 | 亚洲 欧美 偷自乱 图片 |