本文實(shí)例講述了Python模塊的定義,模塊的導(dǎo)入,__name__用法。分享給大家供大家參考,具體如下:
相關(guān)內(nèi)容:
- 什么是模塊
-
模塊的導(dǎo)入
- 模塊的導(dǎo)入
-
自模塊的導(dǎo)入
- 同級目錄導(dǎo)入
-
不同級目錄導(dǎo)入
- 目錄內(nèi)導(dǎo)入目錄外
- 目錄外導(dǎo)入目錄內(nèi)
- __name__
什么是模塊:
在Python中,模塊就是一個(gè)個(gè)方法和類的倉庫,如果我們想要使用某個(gè)模塊中的某個(gè)方法或類,那么我們就需要導(dǎo)入對應(yīng)的模板。
【python有內(nèi)置方法、類,所以有些方法我們并不需要導(dǎo)入模塊】
模塊的使用:模塊.函數(shù) , 模塊.類
1
2
3
4
5
6
7
|
#函數(shù) import math print (math.sqrt( 3 )) #類 import threading a = threading.Thread() print (a) |
模塊的導(dǎo)入:
-
模塊導(dǎo)入:
- import 模塊名
123#import 模塊名
import
math
print
(math.sqrt(
9
))
- from…import 語句:從模塊中導(dǎo)入一個(gè)指定的部分,如類、方法,其中from…import * 代表導(dǎo)入全部內(nèi)容
1
2
3
4
|
#from 模塊名 import 類名、方法名 from collections import Iterable print ( isinstance ( "abc" ,Iterable)) print ( isinstance ([ 1 , 2 , 3 ],Iterable)) |
- from…import導(dǎo)入的時(shí)候還能給導(dǎo)入的部分起個(gè)自定義的名字:如:from … import funcA as fa
-
自模塊導(dǎo)入:
Python import 的搜索路徑
1.在當(dāng)前目錄下搜索該模塊
2.在環(huán)境變量 PYTHONPATH 中指定的路徑列表中依次搜索 【可以從sys.path中獲取】
1
2
3
4
5
6
7
8
9
10
11
12
|
import sys print (sys.path) - - - - - - - - - - 運(yùn)行結(jié)果: [ 'J:\HardWork\Code\python' , 'J:\HardWork\Code\python' , 'I:\python3\python36.zip' , 'I:\python3\DLLs' , 'I:\python3\lib' , 'I:\python3' , 'I:\python3\lib\site-packages' ] |
3.在 Python 安裝路徑的 lib 庫中搜索
- 同級目錄導(dǎo)入:直接導(dǎo)入
不同級目錄導(dǎo)入:將對應(yīng)目錄加入到sys.path中,再import
目錄內(nèi)的b導(dǎo)入目錄外的c
目錄結(jié)構(gòu):
c中內(nèi)容:
b中如何導(dǎo)入c:
1
2
3
4
5
6
7
|
import sys,os print (__file__) ##這是當(dāng)前文件的絕對路徑 parent_dir = os.path.dirname(__file__) ##獲得當(dāng)前文件的目錄 pp_dir = os.path.dirname(parent_dir) sys.path.append(pp_dir) # print(sys.path) import c #要導(dǎo)入c,必須將diff_dir加入sys.path中 |
目錄外的c導(dǎo)入目錄內(nèi)的d
目錄結(jié)構(gòu):
d中內(nèi)容:
c中如何導(dǎo)入d:
1
|
from d2 import d |
或:
1
|
import d2.d |
結(jié)果:
__name__:
由于模塊既可以被導(dǎo)入,也可以被直接運(yùn)行,為了區(qū)分什么是直接運(yùn)行時(shí)運(yùn)行的內(nèi)容,所以有了__name__:
當(dāng)直接運(yùn)行時(shí),__name__是__main__:
1
2
3
4
5
6
7
8
9
10
11
|
print ( "import C done" ) print (__name__) if __name__ = = '__main__' : print ( "direct run" ) - - - - - - - - - - - - - - - 運(yùn)行結(jié)果: import C done __main__ direct run |
當(dāng)用于導(dǎo)入時(shí),__name__是當(dāng)前導(dǎo)入的模塊名,由于__name__不等于__main__,所以不會(huì)執(zhí)行:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
import sys,os # print(__file__)##這是當(dāng)前文件的絕對路徑 parent_dir = os.path.dirname(__file__) ##獲得當(dāng)前文件的目錄 pp_dir = os.path.dirname(parent_dir) sys.path.append(pp_dir) # print(sys.path) import c #要導(dǎo)入c,必須將diff_dir加入sys.path中 - - - - - - - - - - - - - - - - - - 運(yùn)行結(jié)果: import C done c |
希望本文所述對大家Python程序設(shè)計(jì)有所幫助。
原文鏈接:https://www.cnblogs.com/progor/p/8413274.html