日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

python3 打印目录下所有模块_python3基础12详解模块和包(库)|构建|使用

發布時間:2024/1/23 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python3 打印目录下所有模块_python3基础12详解模块和包(库)|构建|使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本篇詳解python中模塊和包(庫)的構建及使用。

歡迎微信隨緣關注@pythonic生物人

本文您將學到什么?

1.模塊 定義模塊 導入模塊 調用模塊中函數方法1 模塊名.函數名方法2 from 模塊名 import 函數名1.函數名2,..方法3 from 模塊名 import * 給模塊取個別名 給模塊中函數取個別名 以腳本的方式執行模塊 __name__怎么理解 查看模塊中的屬性:dir函數 導入模塊時sys.path怎么理解2.包 建立一個包 包中__init__.py文件作用 從包中導入單個模塊方法1方法2 從包中導入所有模塊

1.模塊

python模塊是一個包含Python定義和語句的文件(就是一個.py結尾的腳本文件);
文件名為模塊名,文件后綴為 .py;
在一個模塊內部,模塊名可以通過 __name__方法獲得。

定義模塊

定義一個模塊fibo,即創建一個fibo.py文件。#fibo.py

# Fibonacci numbers module

導入模塊

python習慣上把所有 import 語句放在腳本的開頭,全局調用。

>>>

調用模塊中函數

方法1 模塊名.函數名

>>>

方法2 from 模塊名 import 函數名1.函數名2,..........

>>>

方法3 from 模塊名 import *

*表示該模塊中所有的函數,會導致代碼可讀性差(不建議使用)。

>>>

給模塊取個別名

import 模塊名 as 別名

>>>

給模塊中函數取個別名

from 模塊名 import 函數名 as 函數別名

>>>
  • 以腳本的方式執行模塊

#fibo.py

# Fibonacci numbers module

> python fibo.py 100#if __name__ == "__main__":之后代碼塊執行了(常用于測試)
現在該模塊被當做腳本執行啦!
此時__name__ == __main__
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]

__name__怎么理解

__name__是個全局變量,存放模塊的名字;
當該模塊被其它模塊調用時,__name__=模塊名,對于fibo.py,__name__="fibo";
當該模塊被當做執行腳本時,__name__為__main__( A module’s __name__ is set equal to '__main__' when read from standard input, a script, or from an interactive prompt)。
對于fibo.py,如果終端執行 python fibo.py 100 ,if __name__ == "__main__":后面代碼會執行;如果在別的模塊中執行import fibo,,if __name__ == "__main__":后面代碼不會執行。
>>> import fibo#if __name__ == "__main__":之后代碼塊沒執行
>>>

查看模塊中的屬性:dir函數

>>> import fibo >>> dir(fibo) ['__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'fib', 'fib2']

以__開頭和結尾的屬性為python的內置屬性;
'fib', 'fib2'為自定義屬性。

導入模塊是sys.path怎么理解

sys.path收集python模塊的所有搜索路徑,可以自己添加搜索路徑(sys.path.append('yourpath'))舉個栗子:

#test.py

任何一個python程序執行時,會搜索其導入模塊的路徑,先搜索內置模塊路徑;
然后搜索sys.path收集的路徑,sys.path中路徑依次為:

['/home/pylearning', #被執行程序test.py所在路徑'/home/software/anaconda3/lib/python37.zip','/home/software/anaconda3/lib/python3.7', #環境變量PYTHONPATH中路徑'/home/.local/lib/python3.7/site-packages', #標準庫路徑'/home/software/anaconda3/lib/python3.7/site-packages',#標準庫路徑'~/biosoft/'#自己添加路徑]

2.包(庫)

建立一個包

sound包包含formats,effects,filters三個子包。

sound

包中__init__.py文件作用
只有目錄中添加__init__.py文件時,目錄才會被當做包而不是目錄;
__init__.py 可以為空;
__init__.py中可以設置 __all__ 變量,這個變量主要影響包的導入
- 對于上文的sound包,sound/filters/__init__.py中輸入__all__ == ["equalizer", "vocoder"]時,from sound.filters import *時不會導入karaoke模塊。

從包中導入單個模塊

導入sound包中子包effects中的echo模塊

方法1

import sound.effects.echo引用它時必須使用它的全名,sound.effects.echo(xxx)。

方法2

from sound.effects import echo引用方法,echo(xxx)

從包中導入所有模塊

from sound.effects import *引用方法,echo(xx)


參考資料

https://docs.python.org/zh-cn/3.8/library/__main__.html?highlight=__main__#module-__main__ https://www.zhihu.com/question/49136398 https://blog.konghy.cn/2017/04/24/python-entry-program/ https://docs.python.org/zh-cn/3/tutorial/modules.html

歡迎微信隨緣關注@pythonic生物人

總結

以上是生活随笔為你收集整理的python3 打印目录下所有模块_python3基础12详解模块和包(库)|构建|使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。