1. 程式人生 > >guxh的python筆記:包和模組

guxh的python筆記:包和模組

1,包和模組

包package:本質就是一個資料夾/目錄,必須帶一個__init.__.py的檔案

模組module:.py結尾的python檔案

 

2,匯入方法

import pandas, collections  # 匯入多個

import pandas as pd # 起別名

 

3,包pakage中__init__匯入方法

guxh/

|-- __init__.py # 空白

|-- ex1.py # 含有ex1.fun()

 

3.1,__init__函式留空

"""__init__函式中為空"""

無法通過 import package自動獲得package下的module,需手工指定module。

使用guxh包時支援如下方式:

from guxh import ex1
guxh.ex1.func() 
import guxh.ex1
guxh.ex1.func()

 

3.2,__init__函式匯入module:

from . import ex1  # 相對路徑匯入
from guxh import ex1   # 絕對路徑匯入

使用時必須帶上ex1模組,通過ex1模組訪問func方法

使用guxh包時支援如下方式:

import guxh
guxh.ex1.ex1fun()
from guxh import ex1
ex1.ex1fun() 
import guxh.ex1
guxh.ex1.ex1fun() 

 

3.3,__init__函式匯入module中的方

from .ex1 import *   # 相對路徑匯入,匯入所有方法
from .ex1 import func  # 相對路徑匯入,指定匯入func方法
from guxh.ex1 import *    # 絕對路徑匯入,匯入所有方法
from guxh.ex1 import func    # 絕對路徑匯入,指定匯入func方法

這樣可以讓package像module,不用帶上ex1模組直接使用func,同時也支援帶上ex1模組訪問func。

使用guxh包時支援如下方式:

import guxh
guxh.ex1fun()   # guxh能直接訪問到ex1fun()
guxh.ex1.ex1fun()   # 帶上ex1也行
from guxh import ex1
ex1.ex1fun() 
import guxh.ex1
guxh.ex1fun()   # guxh能直接訪問到ex1fun()
guxh.ex1.ex1fun()  # 帶上ex1也行

 

3.4,錯誤的匯入方法

import ex1 

這種匯入方式,會讓找不到ex1模組,但是如果是init自己執行ex1.fun()卻可以