Python 基礎之import導包

首先須要將import內容創建一個大概以下層級的包:python

以黑色框爲第一級,藍色框爲第二級,棕色框爲第三級,紅色框爲第四級app

一.import 引入初識

首先在module.py寫入代碼以下:函數

 

xboy = "hsz"
xgirl = "zero"

def dog():
    print("小狗喜歡啃骨頭")

def cat():
    print("這個小貓的名字叫作小花")

class MyStu():
    name = "Python"

print("hello python")
print(__name__)

if __name__ == "__main__":
    #若是是間接的被導入,下面的代碼不執行
    print("test")

 

而後在main.py寫入代碼並逐個運行:學習

1.import 引入

import module
#請記住:當導入模塊的時候,只須要一次便可,終身受益.不會出現重複導入的狀況
#模塊.屬性(變量)
res = module.xboy
print(res)

#模塊.函數(方法)
module.dog()

#模塊.類
print(module.MyStu().name)


#使用別名調用模塊當中的成員
import module as m
print(m.xboy)
m.cat()

import sys
print(sys.path)
"""
#自定義模塊,進行導包
'''
在導包的時候,系統默認先從sys.path 這個路徑開始尋找,若是找不到,直接報錯,
若是想要找到,把相應的路徑插入到sys.path這個列表,系統自動尋找對應模塊.
'''
import sys
"""
sys.path.append(r"F:/hsz/zero/ceshi_module/") #
import abcd
print(abcd.ceshi001)

 

而後對上面的mian.py裏的內容進行註釋,日後添加以下代碼進行一步步運行:測試

 2.from...import 從哪裏..引入...方法

 
#引入一個
from module import dog
dog()

#引入多個
from module import cat,xgirl
cat()
print(xgirl)

#引入全部 * 表明全部
from module import *
print(xboy)

#能夠在引入的同事,起一個別名
from module import cat as c,xboy as ww
print(ww)
c()

print(__name__,type(__name__)) #__main__
"""
#返回模塊名字的魔術屬性 __name__
    若是當前文件是直接執行的,就是主文件(主進程),返回__main__
    若是當前文件是間接執行的,就是子文件(子進程),返回當前文件名(模塊名)
"""

if __name__ == "__main__" : #if "main" == "__main__"  條件不成立 , 下面的代碼不執行,不導入
    # __name__ == __main__ 用來作測試用的, 在被間接導入的時候,下面的代碼不須要導入
    print("test code")

3.學習導入包

先對a.py 寫入代碼:spa

 

ceshia = 10011
ceshia2 =10012
ceshia3 = 10013

 

mypath.py寫入代碼:code

 

def join():
    print("自定義join")

ceshimypath = "mypath2345678"

 

還有package1下的__init__.pyblog

ceshi101 = 10111111

# __init__ 不是用來直接運行的,而是伴隨包的初始化的.

# 方法三調用時,打開進行測試.
# from package1 import a
# from package1 import mypath

 

而後對main2.py寫入代碼,一個方法一個方法進行運行進程

#文件就是一個模塊,文件就是一個包
#文件夾裏面能夠有不少文件,就至關於包中有不少的模塊
#若是想把包當成模塊用,在建立一個__init__.py中進行定義
#當引入一個包的時候,當前包下的__init__文件自動執行
import package1
print(package1.ceshi101)

#方法一
import package1.a
print(package1.a.ceshia)

#方法二 (起別名)
import package1.a as pa
print(pa.ceshia2)

#方法三
# print("======方法三=========")
# print(package1.a.ceshia)
# package1.mypath.join() # 類比os.path.join的用法

注意:方法三隻有在用的時候纔將註釋去掉運行測試,爲了避免影響接下來的運行,運行完方法3後對其進行註釋ip

4.from ..import 語法

而後對main2.py接下來的運行作好準備,須要在個個包下的文件添加內容如:

/package2/pkgone/pkgone2.py 內容爲:

ceshippone2 = "ceshione2"
ceshippone22 = "ceshione22"

/package2/pkg_module1.py內容爲:

ceshim1 = "m1"

/package2/pkgtwo/pkgtwo1.py內容爲:

ceshi222 =222
ceshi2222 = 222222

接下來是main2.py添加以下代碼:

#引入package1包下 a模塊中的ceshia2 屬性
from package1.a import ceshia2
print(ceshia2)

#引入的同事,起別名
from package1.mypath import ceshimypath as cm,join as j
print(cm)
j()
## 引入 package2 包下的 pkgone 包下的 pkgone1 模塊 ,順便起別名ppp1
import package2.pkgone.pkgone1 as ppp1
print(ppp1.ceshippp)
 

對此代碼塊進行一 一測試

5.單入口模塊(重要)

分模塊不能單獨進行調用,統一由主文件main進行調用 模塊之間的互相嵌套導入使用相對路徑實現 單入口文件必須和包在同一層級,包裏面能夠含有各類包和模塊

#單入口模式主要是對子文件的內容進行測試,在/package2/pkgone/pkgone1.py文件下添加以下代碼:
ceshippp = "測試pppone"
ceshippp1 = "測試pppone1"

#子文件,若是是單入口模塊,不能直接執行,由於在這裏都用的的相對路徑
#1.

from . import pkgone2 print(pkgone2.ceshippone22) #2. from.pkgone2 import ceshippone2 print(ceshippone2) #3. from .. import pkg_module1 print(pkg_module1.ceshim1) #4. from .. pkgtwo import pkgtwo1 print(pkgtwo1.ceshi222) #5. from ..pkgtwo.pkgtwo1 import ceshi2222 print(ceshi2222) """ . 當前路徑 .. 上一級路徑 ... 上一級的上一級 .... 上一級的上一級的上一級 ..... (這裏的點是無限的) from .......................................... import 模塊 """

最後是在main2.py進行測試,將pkgone1.py文件一行行註釋後,而後分5次將註釋打開進行測試,並查看結果,理解單入口模式的使用方法

相關文章
相關標籤/搜索