python?自定義包的實現(xiàn)示例
1. 代碼目錄
創(chuàng)建自定義包的時候,原理是當 python 檢測到一個目錄下存在 __init__.py 文件時,python 就會把它當成一個模塊(module)。
下面這個例子是網(wǎng)上整理的代碼,但是有些小改動,可以直接拿來就用。
看代碼結(jié)構(gòu):

2. 每個目錄的代碼
parent 主目錄
main.py
import sys
# 這一行需要放在最前面,也是最關(guān)鍵
# 將包含parent包的路徑添加進系統(tǒng)路徑
sys.path.append(r"..")
print('-----開始import-----\n')
import parent.pack2.mod2_1 # 第1種 引用方法
import parent.pack2.mod2_2 as p2m2 # 第2種 引用方法
from parent.pack.mod import * # 第3種 引用方法
if __name__ == '__main__':
print('-----開始main-----\n')
# 第1種 引用的調(diào)用方法
parent.pack2.mod2_1.func()
# 第2種 引用的調(diào)用方法
p2m2.func()
# 第3種 引用的調(diào)用方法
func()
# import 就會把注冊在包 __init__.py 文件中 __all__ 列表中的子模塊和子包導入到當前作用域中
print('\npack2包中的模塊有:')
print(parent.pack2.__all__)
__init__.py
if __name__ == '__main__':
print('parent 作為主程序運行')
else:
print('parent 初始化')
pack 包
a. __init__.py
if __name__ == '__main__':
print('作為主程序運行')
else:
print('Pack初始化')
b. config.py
run = 9999
c. mod.py
# mod
def func():
print('pack.mod.func()')
if __name__ == '__main__':
print('mod 作為主程序運行')
else:
print('mod 被另一個模塊調(diào)用')
pack2 包
a. __init__.py
# Pack2 的 __init__.py
# __all__ 用于當前Pack2包是所包含的模塊
__all__ = ["mod2_1", "mod2_2", "mod2_3"]
if __name__ == '__main__':
print('Pack2作為主程序運行')
else:
print('Pack2初始化')
b. mod2_1.py
# 這里導入上一級目錄下的 pack 下面的 config 文件
from parent.pack import config
# mod2
def func():
print('pack2.mod2_1.func()')
print("config: " + str(config.run))
if __name__ == '__main__':
print('mod2_1 作為主程序運行')
else:
print('mod2_1 被另一個模塊調(diào)用')
c. mod_2.py
# mod2
def func():
print('pack2.mod2_2.func()')
if __name__ == '__main__':
print('mod2_2 作為主程序運行')
else:
print('mod2_2 被另一個模塊調(diào)用')
代碼:
https://gitee.com/zhiyong47/vine/tree/master/effective_codes/parent
到此這篇關(guān)于python 自定義包的實現(xiàn)示例的文章就介紹到這了,更多相關(guān)python 自定義包內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Django配置Mysql數(shù)據(jù)庫連接的實現(xiàn)
本文主要介紹了Django配置Mysql數(shù)據(jù)庫連接的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-03-03
Python使用Pandas和Matplotlib按中值對箱形圖進行排序
箱形圖是可視化數(shù)據(jù)分布的強大工具,因為它們提供了對數(shù)據(jù)集內(nèi)的散布、四分位數(shù)和離群值的洞察,在本文中,我們將探索如何在Python中使用Pandas和Matplotlib按中值對箱形圖進行排序,需要的朋友可以參考下2025-04-04
python通過paramiko復制遠程文件及文件目錄到本地
這篇文章主要為大家詳細介紹了python通過paramiko復制遠程文件及文件目錄到本地,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-04-04

