Python 文件常數(shù)引用問題小結(jié)
了解Python
Python介紹
Python 是一個(gè)高層次的結(jié)合了解釋性、編譯性、互動(dòng)性和面向?qū)ο蟮哪_本語言。
Python 的設(shè)計(jì)具有很強(qiáng)的可讀性,相比其他語言經(jīng)常使用英文關(guān)鍵字,其他語言的一些標(biāo)點(diǎn)符號(hào),它具有比其他語言更有特色語法結(jié)構(gòu)。
- Python 是一種解釋型語言: 這意味著開發(fā)過程中沒有了編譯這個(gè)環(huán)節(jié)。類似于PHP和Perl語言。
- Python 是交互式語言: 這意味著,您可以在一個(gè) Python 提示符 >>> 后直接執(zhí)行代碼。
- Python 是面向?qū)ο笳Z言: 這意味著Python支持面向?qū)ο蟮娘L(fēng)格或代碼封裝在對(duì)象的編程技術(shù)。
- Python 是初學(xué)者的語言:Python 對(duì)初級(jí)程序員而言,是一種偉大的語言,它支持廣泛的應(yīng)用程序開發(fā),從簡(jiǎn)單的文字處理到 WWW 瀏覽器再到游戲
- Python目前分為兩種流行版本
① Python 2.0x
② Python 3.0x
首先Python 3的版本是現(xiàn)在與未來的主流版本
在Python3.5+以及以上的版本,不支持Windows xp以及更低的系統(tǒng)
并且在Windows 7當(dāng)中必須安裝sp1補(bǔ)丁包才可以運(yùn)行
建議選擇Python 3.6.1-2017-03-21這種文件名的版本,是比較穩(wěn)定發(fā)布的版本
Python特點(diǎn)
- 1.易于學(xué)習(xí):Python有相對(duì)較少的關(guān)鍵字,結(jié)構(gòu)簡(jiǎn)單,和一個(gè)明確定義的語法,學(xué)習(xí)起來更加簡(jiǎn)單。
- 2.易于閱讀:Python代碼定義的更清晰。
- 3.易于維護(hù):Python的成功在于它的源代碼是相當(dāng)容易維護(hù)的。
- 4.一個(gè)廣泛的標(biāo)準(zhǔn)庫:Python的最大的優(yōu)勢(shì)之一是豐富的庫,跨平臺(tái)的,在UNIX,Windows和Macintosh兼容很好。
- 5.互動(dòng)模式:互動(dòng)模式的支持,您可以從終端輸入執(zhí)行代碼并獲得結(jié)果的語言,互動(dòng)的測(cè)試和調(diào)試代碼片斷。
- 6.可移植:基于其開放源代碼的特性,Python已經(jīng)被移植(也就是使其工作)到許多平臺(tái)。
- 7.可擴(kuò)展:如果你需要一段運(yùn)行很快的關(guān)鍵代碼,或者是想要編寫一些不愿開放的算法,你可以使用C或C++完成那部分程序,然后從你的Python程序中調(diào)用。
- 8.數(shù)據(jù)庫:Python提供所有主要的商業(yè)數(shù)據(jù)庫的接口。
- 9.GUI編程:Python支持GUI可以創(chuàng)建和移植到許多系統(tǒng)調(diào)用。
- 10.可嵌入: 你可以將Python嵌入到C/C++程序,讓你的程序的用戶獲得"腳本化"的能力
在一個(gè) Python 文件里定義一些常數(shù),比如模型路徑、視頻保存開關(guān)、窗口尺寸等,
然后在另一個(gè)文件里能直接引用這些常數(shù),而不用重復(fù)寫一遍。
這在工程化中非常常見
一、定義常數(shù)文件(比如 config_const.py)
可單獨(dú)建一個(gè)文件,例如:config_const.py
# config_const.py # ------------------------- # 全局常數(shù)定義文件 # ------------------------- # 視頻保存相關(guān) SAVE_VIDEO = True VIDEO_FPS = 20 VIDEO_WIDTH = 1280 VIDEO_HEIGHT = 720 # 模型路徑 MODEL_PATH = "weights/lane_detect_model.engine" # 其他常量 DETECTION_THRESHOLD = 0.5
二、在其他 Python 文件中引用
比如在 run.py 想用這些常量,只需:
from config_const import SAVE_VIDEO, VIDEO_FPS, VIDEO_WIDTH, VIDEO_HEIGHT
# 使用
if SAVE_VIDEO:
out_writer = cv2.VideoWriter("output.mp4", cv2.VideoWriter_fourcc(*'mp4v'), VIDEO_FPS, (VIDEO_WIDTH, VIDEO_HEIGHT))或者直接導(dǎo)入整個(gè)模塊:
import config_const as C
if C.SAVE_VIDEO:
print(f"保存視頻尺寸:{C.VIDEO_WIDTH}x{C.VIDEO_HEIGHT}")三、項(xiàng)目結(jié)構(gòu)推薦
project/ │ ├── run.py ├── postprocess_lanes.py ├── config_const.py 存放全局常量 ├── utils/ │ ├── __init__.py │ ├── video_utils.py │ └── model_utils.py
這樣所有文件都可以用:
from config_const import *
或:
import config_const as C
四、如果要讓常量可以跨模塊修改(例如參數(shù)調(diào)整)
可以把常量寫在一個(gè)類或字典中,方便動(dòng)態(tài)修改:
# config_const.py
class Config:
SAVE_VIDEO = True
VIDEO_FPS = 20
VIDEO_WIDTH = 1280
VIDEO_HEIGHT = 720
然后在別的文件用:
from config_const import Config Config.SAVE_VIDEO = False # 修改也能影響全局引用 print(Config.VIDEO_FPS)
五、總結(jié)對(duì)照表
| 方式 | 優(yōu)點(diǎn) | 缺點(diǎn) |
|---|---|---|
| 直接定義常量(推薦) | 簡(jiǎn)潔明了,易維護(hù) | 不能動(dòng)態(tài)修改 |
| 類封裝(Config) | 可讀性高,支持動(dòng)態(tài)修改 | 稍微多寫一點(diǎn) |
| JSON/YAML 文件讀取 | 易于配置化 | 需要額外讀取邏輯 |
建議在項(xiàng)目中專門建一個(gè) config_const.py 來集中放置這些常數(shù)。
例如像現(xiàn)在的 config_p 一樣,就可以把默認(rèn)值放在常數(shù)文件里,這樣別的模塊都能引用。
到此這篇關(guān)于Python 文件常數(shù)引用問題小結(jié)的文章就介紹到這了,更多相關(guān)Python 文件常數(shù)引用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python 三邊測(cè)量定位的實(shí)現(xiàn)代碼
這篇文章主要介紹了python 三邊測(cè)量定位的實(shí)現(xiàn)代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-04-04
如何使用Python的xml.etree.ElementTree模塊解析和操作 XML 數(shù)據(jù)
xml.etree.ElementTree是Python標(biāo)準(zhǔn)庫中用于解析和操作XML數(shù)據(jù)的模塊,無需安裝,支持解析、創(chuàng)建、修改和查詢XML數(shù)據(jù),本文介紹如何使用Python的xml.etree.ElementTree模塊解析和操作 XML 數(shù)據(jù),感興趣的朋友跟隨小編一起看看吧2025-01-01
python虛擬環(huán)境多種創(chuàng)建方式圖文詳解
創(chuàng)建虛擬環(huán)境是為了讓項(xiàng)目運(yùn)行在一個(gè)獨(dú)立的局部的Python環(huán)境中,使得不同環(huán)境的項(xiàng)目互不干擾,這篇文章主要給大家介紹了關(guān)于python虛擬環(huán)境多種創(chuàng)建方式的相關(guān)資料,需要的朋友可以參考下2024-08-08
Python Matplotlib 基于networkx畫關(guān)系網(wǎng)絡(luò)圖
這篇文章主要介紹了Python Matplotlib 基于networkx畫關(guān)系網(wǎng)絡(luò)圖,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07
python光學(xué)仿真實(shí)現(xiàn)光線追跡之空間關(guān)系
這篇文章主要介紹了python光學(xué)仿真中實(shí)現(xiàn)光線追跡的空間關(guān)系示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2021-10-10

