当前位置: 首页 > news >正文

Python 文件常数引用

在一个 Python 文件里定义一些常数,比如模型路径、视频保存开关、窗口尺寸等,
然后在另一个文件里能直接引用这些常数,而不用重复写一遍。

这在工程化中非常常见

一、定义常数文件(比如 config_const.py)

可单独建一个文件,例如:
config_const.py

# config_const.py
# -------------------------
# 全局常数定义文件
# -------------------------# 视频保存相关
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))

或者直接导入整个模块:

import config_const as Cif C.SAVE_VIDEO:print(f"保存视频尺寸:{C.VIDEO_WIDTH}x{C.VIDEO_HEIGHT}")

三、项目结构推荐

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

四、如果要让常量可以跨模块修改(例如参数调整)

可以把常量写在一个类或字典中,方便动态修改:

# config_const.py
class Config:SAVE_VIDEO = TrueVIDEO_FPS = 20VIDEO_WIDTH = 1280VIDEO_HEIGHT = 720

然后在别的文件用:

from config_const import ConfigConfig.SAVE_VIDEO = False  # 修改也能影响全局引用
print(Config.VIDEO_FPS)

五、总结对照表

方式优点缺点
直接定义常量(推荐)简洁明了,易维护不能动态修改
类封装(Config)可读性高,支持动态修改稍微多写一点
JSON/YAML 文件读取易于配置化需要额外读取逻辑

建议在项目中专门建一个 config_const.py 来集中放置这些常数。
例如像现在的 config_p 一样,就可以把默认值放在常数文件里,这样别的模块都能引用。

http://www.dtcms.com/a/536282.html

相关文章:

  • 钦州电商网站建设南京网络建站公司
  • TCP数据中转服务器/广播服务器(高并发TCP服务广播)winform.netcore(net8)
  • 实验室温湿度高精度采集与监控中心集中管理实施细则
  • set和map的封装(C++)
  • Python机器学习---7.实战案例:幸福指数分析
  • 大型网站建设淮安公司网站建设
  • 重庆简约型网站开发价格做教程网站资源放哪里有
  • axios封装实例
  • 日语学习-日语知识点小记-构建基础-JLPT-N3阶段-二阶段(8):阶段复习
  • RabbitMQ死信队列详解
  • 信息消除不确定性的多维解析
  • Day12:Python实现邮件自动发送
  • 点亮LED
  • 家乡ppt模板免费下载网站地图 添加到网站
  • JMeter直连数据库的使用案例1
  • 网站备案ip查询系统上海十大营销策划公司排名
  • STM32H743-ARM例程31-CAN
  • Claude Code + 国产模型GLM-4.6 安装指南 (for Windows/Mac)
  • Docker 镜像导出与导入教程(Windows - Linux)
  • ARM《4》_在开发板上裸机编程实现GPIO编程控制LED灯闪烁
  • 手机商城 手机网站建设郴州今天几例
  • 从 Electron 转向 Tauri:用 Rust 打造更轻、更快的桌面应用
  • webrtc代码走读(九)-QOS-SVC(可分级视频编码)
  • 个人项目开发(3) 实现基于角色的权限控制及自动刷新token
  • 在柬埔寨做网络销售推网站校园网站建设教程
  • 具备高度自主学习能力、互联网交互能力、智能家居控制能力和多模态交互能力的通用智能体原型系统
  • 爬虫前奏--基于macos的ip代理池构建
  • 网站开发专员的面试题微信导航wordpress
  • 给传销做网站网站设计模板psd
  • Kingbase 与 ETL:如何实现金融级数据库的安全数据同步