python 导入包 作用域_Python 包、模块、函数、变量作用域
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__指定的模塊
函數的參數:
1.必須參數:這是指代的是函數定義時候的參數順序和個數。
defget_result(x,y):
result=x+y
returnresult
result=get_result(1,2)#這1 , 2 分別給 x , y 就是必須參數
print(result)
2.關鍵字參數:這在于函數的調用,而不是函數的定義。
defget_result(x,y):
result=x+y
returnresult
result=get_result(1,2) #需考慮賦值順序
print(result)
result2=get_result(y=2,x=1) ?# 這就是關鍵字參數,在于函數調用時候,不用考慮賦值順序。
print(result2)
以上兩個參數類型,只是在函數調用時候的不同,而參數定義是一樣的。
總結
以上是生活随笔為你收集整理的python 导入包 作用域_Python 包、模块、函数、变量作用域的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 西南科技大学OJ45 分数求和
- 下一篇: 代码吃鸡:Python-Robocode