1.1 描述
python的_X指出不被復制的變量,all指出要復制的變量。
NO | 變量 | 描述 |
---|---|---|
1 | _X | from module import*,不復制X變量(單下劃線開頭的變量) |
2 | all | from module import *,只復制all列表內變量,用于模塊文件; from pkg import *,只導入all列表內模塊,用于包文件init.py; |
3 | _X和all | 只針對from x import * 語句生效。 對非from的import語句無效。 |
1.2 模塊_X
文件內容
pkgmoda.py
import os
print('run:{}'.format(os.path.abspath(__file__)))
s='梯閱線條'
_a='tyxt'
b=9555
from module import * 不復制_X變量
# cmd 執行下面命令
C:UsersAdministrator>e:&cd E:documentsF盤
E:documentsF盤>d:python3python
Python 3.7.8 (tags/v3.7.8:4b47a5b6ba, Jun 28 2020, 07:55:33) [MSC v.1916 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
# from module import * 不復制_X變量
>>> from pkg.moda import *
run:E:documentsF盤pkg__init__.py
run:E:documentsF盤pkgmoda.py
# 復制非單下劃線開頭變量,可訪問
>>> s
'梯閱線條'
>>> b
9555
# 不復制單下劃線開頭變量,不可訪問
>>> _a
Traceback (most recent call last):
File "" , line 1, in
NameError: name '_a' is not defined
單下劃線開頭變量,對非from的import語句無效,會被復制。
# cmd 執行下面命令
E:documentsF盤>d:python3python
Python 3.7.8 (tags/v3.7.8:4b47a5b6ba, Jun 28 2020, 07:55:33) [MSC v.1916 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
# _X對import 語句無效
>>> import pkg.moda
run:E:documentsF盤pkg__init__.py
run:E:documentsF盤pkgmoda.py
>>> pkg.moda.s
'梯閱線條'
>>> pkg.moda.b
9555
# 可訪問_a
>>> pkg.moda._a
'tyxt'
1.3 模塊all
文件內容
pkgmodb.py
import os
__all__=['s','b',]
print('run:{}'.format(os.path.abspath(__file__)))
s='梯閱線條'
a='tyxt'
b=9555
from module import *,只復制all列表內變量,用于模塊文件
# cmd 執行下面命令
E:documentsF盤>d:python3python
Python 3.7.8 (tags/v3.7.8:4b47a5b6ba, Jun 28 2020, 07:55:33) [MSC v.1916 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from pkg.modb import *
run:E:documentsF盤pkg__init__.py
run:E:documentsF盤pkgmodb.py
# 在__all__列表的變量,可訪問
>>> s
'梯閱線條'
>>> a
# 不在__all__列表的變量,不可訪問
Traceback (most recent call last):
File "" , line 1, in
NameError: name 'a' is not defined
>>> b
9555
all列表,對非from的import語句無效,不在列表內的變量也會被復制,可訪問。
# cmd 執行下面命令
E:documentsF盤>d:python3python
Python 3.7.8 (tags/v3.7.8:4b47a5b6ba, Jun 28 2020, 07:55:33) [MSC v.1916 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import pkg.modb
run:E:documentsF盤pkg__init__.py
run:E:documentsF盤pkgmodb.py
>>> pkg.modb.s
'梯閱線條'
# 不在__all__列表的變量,也可訪問
>>> pkg.modb.a
'tyxt'
>>> pkg.modb.b
9555
1.4 包all
文件內容
pkg__init__.py
import os
__all__=['moda',]
print('run:{}'.format(os.path.abspath(__file__)))
from pkg import *,自動導入all列表內模塊,用于包文件 init .py;
# cmd 執行下面命令
E:documentsF盤>d:python3python
Python 3.7.8 (tags/v3.7.8:4b47a5b6ba, Jun 28 2020, 07:55:33) [MSC v.1916 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from pkg import *
run:E:documentsF盤pkg__init__.py
run:E:documentsF盤pkgmoda.py
# 自動導入 __all__ 列表內模塊
>>> moda.s
'梯閱線條'
# 非 __all__ 列表內模塊不自動導入,不可訪問
>>> modb.s
Traceback (most recent call last):
File "", line 1, in
NameError: name 'modb' is not defined
>>> modc.s
Traceback (most recent call last):
File "", line 1, in
NameError: name 'modc' is not defined
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
python
+關注
關注
56文章
4797瀏覽量
84776
發布評論請先 登錄
相關推薦
【 地平線旭日X3派試用體驗】03. Python串口解析姿態傳感器
,同時會接上鼠標和鍵盤用于人機交互,如上圖所示。 2、姿態傳感器解析Python串口解析姿態傳感器數據主要用的模塊有serial、time。在windows調試完成后,修改適配X3派l
發表于 09-02 14:13
用于數據科學的python必學模塊之Matplotlib的資料說明
本文檔的主要內容詳細介紹的是用于數據科學的python必學模塊之Matplotlib的資料說明。
發表于 09-18 08:00
?14次下載
Python的函數文件與模塊的程序說明
“探索Python ” 這一系列的前幾篇文章已為Python 編程新手介紹了幾方面的主題, 包括變量、容器對象和復合語句。本文以這些概念為基礎,構造一個完整的Python 程序。引入了Pyth
發表于 09-10 16:06
?2次下載
python包、模塊和庫是什么
1. 模塊 以 .py 為后綴的文件,我們稱之為 模塊,英文名 Module。 模塊讓你能夠有邏輯地組織你的 Python 代碼段,把相關的代碼分配到一個
python模塊屬性及字符串導入模塊介紹
python可以通過點號或字典,獲取模塊屬性。
已經導入的模塊存放在sys.modules字典,通過getattr獲取
簡述python包模塊import和from及all
python指定導入目錄路徑,稱為包導入。
通過import和from導入包模塊。
通過**all**指定導入的
淺析python模塊創建和from及import使用
python模塊通過用python程序編寫的.py文件即可創建,通過from及import語句導入模塊
通過Python實現PLC數據可視化呈現于Web端的方案
+pyModbusTCP庫實現數據采集;
M580可擴展BMEP582040 OPC UA模塊,可通過Python+opcua庫實現數據采
發表于 04-20 10:33
?1次下載
Python中telnetlib模塊的基本使用
telnetlib 是 Python 標準庫中的一個模塊,它提供了 Telnet 協議的客戶端功能。使用 telnetlib 模塊,我們可以在 Python 中編寫腳本來自動化 Tel
yfinance:獲取數據的Python第三方模塊
yfinance 是一個使用 Yahoo! 獲取數據的 Python 第三方模塊。它支持獲取最細到1分鐘級的歷史數據及股票基本面數據,是免費
python如何導入模塊
Python是一種強大的編程語言,它支持模塊化編程,使得開發者可以將代碼分解為可重用且獨立的模塊。模塊是一個包含函數、類和變量等定義的文件,我們可以使用import語句將這些
評論