Python 包、模組、函式、變數作用域
阿新 • • 發佈:2018-12-08
Python 專案的組織結構
- 包
-- 模組
--- 類
---- 函式、變數
Python是利用包和模組來組織一個專案的。
包: 包的物理表現是一個資料夾,但是一個資料夾卻不一定是個包,要想讓個資料夾成為一個包,就必須在這個資料夾下增加個特定的檔案 __init__.py
__init__.py裡面可以什麼也不寫,只是純粹來標註這個資料夾是個包。 也可以在這個檔案裡編寫程式碼。
對於模組的名字:包名.模組名
對於__init__.py模組的名字:直接是包名
匯入有兩種方式:
1、匯入模組:import 模組名
若在模組A中想用到B模組的變數b,那麼在A中import B 之後,需要使用模組名來點出來變數名:B.b
在模組A中:
import B
print(B.b)
2、from 模組名 import 變數名,函式
在模組A中:
from B import b
可直接使用 print(b),而不用使用字首
import匯入的是模組,from import匯入的是具體的變數或者函式,因此使用from import 就不用使用字首了。
但是!也可以使用 from 包名 import 模組名 然後在A模組中使用 B.b 。。。。
比如:B模組在C包中,C包和A模組是平級的
在A模組中使用:
from C import B
print(B.b)
若是B中有大量的變數需要匯入,那麼可以用 * 號來指代。
但是如此,便將B中的所有都匯入A中了。
其實可以在B中進行指定,哪些變數可以通過 * 號來進行匯入到其他檔案
在B檔案的頂部,使用 __ALL__=['變數名a',‘變數名b’] ,這樣在A檔案中使用 from B import * 的時候,只會將B中的 a b 兩個變數匯入A
其實吧,也可是使用 from B import a,b,c 但是呢,Python的規範是一行字元個數不超過80,若是需要匯入變數過多就要換行
Python程式碼換行問題:
方式一:在需要換行的結尾加上反斜槓 \ 然後換行
方式二:在被匯入變數的外部加上括號來換行
__inti__.py的作用:
基本作用 :import 匯入包的時候,python會自動執行__init__.py檔案
應用場景:做一些初始化工作
不論是匯入包還是匯入包中某個模組的變數,都會自動於執行init檔案
init 檔案中也可使用 __all__ = ['模組名'],來指定當此包之外的某模組使用 from 包名 import * 的時候,會import 進 __all__指定的模組
result = get_result( 1 , 2 ) #這1 , 2 分別給 x , y 就是必須引數 print
(result)
2.關鍵字引數:這在於函式的呼叫,而不是函式的定義。
def
get_result
(
x
,
y
):
result
=
x
+
y
return
result
result = get_result( 1 , 2 ) #需考慮賦值順序 print (result)
result2
=
get_result(
y
=
2
,
x
=
1
) # 這就是關鍵字引數,在於函式呼叫時候,不用考慮賦值順序。
print
(result2)
以上兩個引數型別,只是在函式呼叫時候的不同,而引數定義是一樣的。
函式的引數:
1.必須引數:這是指代的是函式定義時候的引數順序和個數。 def get_result ( x , y ): result = x + y return resultresult = get_result( 1 , 2 ) #這1 , 2 分別給 x , y 就是必須引數 print
result = get_result( 1 , 2 ) #需考慮賦值順序 print (result)
result2
來自為知筆記(Wiz)