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

腳本之家,腳本語言編程技術(shù)及教程分享平臺!
分類導(dǎo)航

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

服務(wù)器之家 - 腳本之家 - Python - Python動態(tài)導(dǎo)入模塊的方法實例分析

Python動態(tài)導(dǎo)入模塊的方法實例分析

2021-03-10 00:46Bigberg Python

這篇文章主要介紹了Python動態(tài)導(dǎo)入模塊的方法,結(jié)合實例形式較為詳細(xì)的分析了Python動態(tài)導(dǎo)入系統(tǒng)模塊、自定義模塊以及模塊列表的相關(guān)操作技巧,需要的朋友可以參考下

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

 

一、正常導(dǎo)入模塊

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

同時導(dǎo)入多個模塊:

?
1
import os,sys,socket

 

二、動態(tài)導(dǎo)入模塊

動態(tài)導(dǎo)入模塊允許我們通過字符串形式來導(dǎo)入模塊

 

2.1 __import__函數(shù),接受一個字符串參數(shù)

?
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 模塊名當(dāng)中參數(shù)傳入__import__函數(shù)中,可以看出my_sys 和my_os 其實就是相當(dāng)于 os , sys 模塊了。

 

2.2 __import__函數(shù)導(dǎo)入自己的模塊

我們在lib包中有一個test.py模塊,我們?nèi)绾瓮ㄟ^__import__函數(shù)來導(dǎo)入該模塊呢?

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

輸出:

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

 

2.3 動態(tài)導(dǎo)入模塊列表

?
1
2
3
4
5
6
moduleNames = ['sys', 'os', 'socket']
print(type(map))
# 在python3 map函數(shù)不在是內(nèi)置函數(shù),而是class,返回的結(jié)果是 可迭代對象
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)]

現(xiàn)在的modules[0] 就相當(dāng)于 sys 模塊了。

 

2.4 importlib 模塊

動態(tài)導(dǎo)入模塊時,python官方建議使用importlib模塊,我們同樣導(dǎo)入lib/test.py

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

輸出:

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

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 99超级碰碰成人香蕉网 | 亚洲视频在线一区二区 | 国色天香论坛社区在线视频 | 人成网站在线观看 | 国产老太婆hd老头 | 免费刷10000名片赞网站 | 亚洲欧美日韩成人一区在线 | 午夜一区二区免费视频 | 九哥草逼网 | 国产一精品一av一免费爽爽 | 国产精品51麻豆cm传媒 | 亚洲欧洲淘宝天堂日本 | 色欧美亚洲 | 亚洲国产成人在线视频 | 国产白白视频在线观看2 | 亚洲成色WWW久久网站夜月 | 男人的天堂日本 | 欧美日韩精品一区二区三区视频播放 | 成人福利在线视频免费观看 | 不卡视频一区二区 | 日韩精品欧美国产精品亚 | 婷婷日韩 | 男女乱淫真视频播放网站 | 久久精品久久久 | 大肥臀风间由美 中文字幕 大东北chinesexxxx露脸 | 日本h片在线 | 成人欧美1314www色视频 | 亚洲成av人影院 | 操好爽 | 午夜久久久久久网站 | 日韩毛片高清在线看 | 日本护士厕所xxx | 精品视频一区在线观看 | 69pao强力打造免费高速 | 亚洲国产精品一区二区久久 | 久久精品中文字幕 | 欧美一区二区三区四区五区六区 | 午夜影院c绿象 | 日韩欧美中文在线 | 男神插曲女生动漫完整版动漫 | 亚洲欧洲日产国码无码av |