Python 項目的組織結(jié)構(gòu)
- 包
-- 模塊
--- 類
---- 函數(shù)、變量
Python是利用包和模塊來組織一個項目的。
包: 包的物理表現(xiàn)是一個文件夾,但是一個文件夾卻不一定是個包,要想讓個文件夾成為一個包,就必須在這個文件夾下增加個特定的文件 __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 變量名,函數(shù)
在模塊A中:
from B import b
可直接使用 print(b),而不用使用前綴
import導入的是模塊,from import導入的是具體的變量或者函數(shù),因此使用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的規(guī)范是一行字符個數(shù)不超過80,若是需要導入變量過多就要換行
Python代碼換行問題:
方式一:在需要換行的結(jié)尾加上反斜杠 \ 然后換行
方式二:在被導入變量的外部加上括號來換行
__inti__.py的作用:
基本作用 :import 導入包的時候,python會自動運行__init__.py文件
應用場景:做一些初始化工作
不論是導入包還是導入包中某個模塊的變量,都會自動于運行init文件
init 文件中也可使用 __all__ = ['模塊名'],來指定當此包之外的某模塊使用 from 包名 import * 的時候,會import 進 __all__指定的模塊
函數(shù)的參數(shù):1.必須參數(shù):這是指代的是函數(shù)定義時候的參數(shù)順序和個數(shù)。
defget_result(x,y):
result = x + y
return result
result = get_result(1,2) #這1 , 2 分別給 x , y 就是必須參數(shù)
print(result)
2.關(guān)鍵字參數(shù):這在于函數(shù)的調(diào)用,而不是函數(shù)的定義。
defget_result(x,y):
result = x + y
return result
result = get_result(1,2) #需考慮賦值順序
print(result)
result2 = get_result(y=2, x=1) # 這就是關(guān)鍵字參數(shù),在于函數(shù)調(diào)用時候,不用考慮賦值順序。
print(result2)
以上兩個參數(shù)類型,只是在函數(shù)調(diào)用時候的不同,而參數(shù)定義是一樣的。
|
|
來自: python_lover > 《待分類》