日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python module是干什么的_如何最简单、通俗地理解Python的模块?

發布時間:2023/12/15 python 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python module是干什么的_如何最简单、通俗地理解Python的模块? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄:

一、筆記

二、筆記目錄

一、筆記

1) 模塊

① Python模塊(Module),是一個Python文件,以.py結尾,包含了Python語句和Python對象定義,模塊讓你能夠有邏輯地組織你的Python代碼段。

② 相當于很多類、很多函數包含在一個.py文件,這個.py文件就是一個模塊。

③ 模塊能定義函數,類和變量,模塊里也能包含可執行的代碼,即導入模塊會自動執行這些代碼。

④ 把相關的代碼分配到一個模塊里能讓你的代碼更好用,更易懂。

⑤ 推薦所有的模塊在Python模塊的開頭部分導入,而且最好按照下面的順序:1. Python標準庫模塊

2. Python第三方模塊

3. 應用程序自定義模塊

⑥ 在Python中用關鍵字import來引入某個模塊,比如要導入模塊time,就可以在文件最開始的地方用import time來引入。

# functools就是模塊,是一個functools.py文件,該文件在搜索在搜索路徑下的,reduce是這個文件中的一個方法。

from functools import reduce

2) import

① import A1. 在調用模塊中的函數時,必須加上模塊名調用,因為可能存在多個模塊中含有相同名稱的函數,此時,如果只是通過函數名來調用,解釋器無法知道到底要調用哪個函數。為了避免這樣的情況,調用函數時,必須加模塊名。

2. import time 等價于 from time import *,即把time模塊中的所有方法都導入。

import time

# 第一個time是模塊,第二個time是方法,要用模塊加方法的形式,因為不同模塊可能有相同的方法

print(time.time())

運行結果:1605406639.2172427

import time

# print(sleep(2)) # 會報錯,它不知道sleep()方法是哪個模塊中的,所以不會去調用

print(time.sleep(2)) # 不報錯,僅導入模塊時,一定要用 模塊.方法 的形式

運行結果:None

② from A import b1. 不會把整個模塊導入進來,只會把A模塊的b方法導入進來(相當于把這個方法寫在文件的開頭),不能寫模塊名。

2. 從A模塊里導入一個函數或者一個變量 b。

3. from導入模塊,import導入類名,實例化時可直接用類名了。

from time import time # 僅僅導入了time模塊中time方法

print(time()) # 不會報錯,不用加模塊名

# print(time.time()) # 報錯,相當于僅僅把time方法寫在本文件頭部,不能加模塊名

# print(sleep(1)) # 報錯,除非用 from time import time,sleep

# print(time.sleep(1)) # 報錯,除非用 import time

運行結果:1605406786.6635635

③ import A as b1. 將A重新命名為b。

# time重命名為t

import time as t

print(t.time()) # 等價于原來的 print(time.time()),但重命名后不可以用 print(time.time())

#print(time.time()) # 報錯,無法再用time作為模塊名

運行結果:1611287703.3578482

④ from A.B.c import d1. 軟件項目來說不可能把所有代碼放在一個文件中實現,它們一般會按照一定規則在不同的目錄和文件中實現,然后互相調用。

2. 從當前路徑下,A文件夾下B文件夾下的c模塊中,導入d方法

'''

import p 調用本文件的當前目錄下的 p模塊

import C.c1 調用當前路徑下的C文件夾下的c1.py模塊

import C.c2 import c5 調用當前路徑下的C文件夾下的c2.py模塊中的c5方法

'''

3) 模塊內置屬性

① __doc__ 為打印文檔說明(只能在文件的最開始,import前面,在后面的字符串不會打印),即文檔中的字符串。

② __file__為打印本文件的路徑。

③ __all__打印過濾變量、函數和類。

'''

import b1

print(__doc__)

print(__file__) # 打印本模塊的路徑

print(__all__)

print(b1.__doc__)

print(b1.__file__) # b1模塊的路徑

print(b1.__all__)

'''

4) __all__

① 因為模塊中可能包含大量的不需要的變量、函數和類,可以通過設置 __all__起到過濾變量、函數和類的作用,變量 __all__ 包含一個列表。

② 在以import * 方式導入時,會導入任意不以下劃線打頭的全局名詞,有 * 的時候才跟 __all__ 搭配使用, 通過__all__起到過濾。

③ 直接用import b1時,即導入b1模塊的時候,在b1模塊即使有__all__是沒有影響的,可以使用b1模塊中的任何變量、函數和類。

④ 模塊中不使用__all__屬性,則導入模塊內的所有共有屬性,方法和類。

'''

# 以下是b1文件里代碼

__all__ = ['b3','S','b4',b5] # 當用from b1 import * 只能用b3、b4和類S,可以需要過濾的b5,但是未賦值

b3 = 1

b4 = 2

clas S:

pass

def s():

pass

'''

'''

# 當前文件下代碼

from b1 import * # 導入b1模塊,用 * 使得調用 __all__

b4 = 5

print(b3) # 可以打印b3,為1

print(b4) # 這里打印b4,為5

k = S() # 可以類的實例化

s() # 無法調用函數s()

'''

5) if __name__ == '__main__':

① 當調入別的模塊時,通常在模塊中寫 if __name__ == '__main__': 這樣能避免調用其他模塊時,這些模塊中的函數運行了,但是 if __name__ == '__main__' 以外的函數、變量、類都會運行,相當于把這些抄到了文件的頭部,直接運行。

# 以下是b1.py模塊內容

print("寶貝入懷")

if __name__ == '__main__':

print("你好")

'''

import b1 # 導入b1模塊,會自動運行 if __name__ == '__main__'以外內容,就會打印print("寶貝入懷")

print(__name__) # 代碼在當前文件中跑,該模塊的文件名__name__不是文件名,而是__main__。

if __name__ == '__main__':

print(b1.__name__) # 導入另一個模塊的代碼,另一個模塊的文件名__name__是文件名b1。

'''

二、我的筆記

01 筆記--Python [ 整理完 ]

02 筆記--機器視覺 [ 整理完 ]

03 筆記--C++ [ 整理完 ]

04 筆記--爬蟲 [ 整理ing ]

三、Python 目錄

1) Python 編輯器

2) Python 基礎

03) Python 難點

04) Python 常用的庫

[Python系列 已完結]

( C++、機器視覺、爬蟲......系列筆記,見專欄 )

"?我的筆記,希望對你有幫助?"

總結

以上是生活随笔為你收集整理的python module是干什么的_如何最简单、通俗地理解Python的模块?的全部內容,希望文章能夠幫你解決所遇到的問題。

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