Python 文件常数引用问题小结

 更新时间:2025年10月28日 16:13:55   作者:年六季  
Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言,本文给大家介绍Python 文件常数引用问题小结,感兴趣的朋友跟随小编一起看看吧

了解Python

Python介绍

Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。

Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。

  • Python 是一种解释型语言: 这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言。
  • Python 是交互式语言: 这意味着,您可以在一个 Python 提示符 >>> 后直接执行代码。
  • Python 是面向对象语言: 这意味着Python支持面向对象的风格或代码封装在对象的编程技术。
  • Python 是初学者的语言:Python 对初级程序员而言,是一种伟大的语言,它支持广泛的应用程序开发,从简单的文字处理到 WWW 浏览器再到游戏
  • Python目前分为两种流行版本

① Python 2.0x

② Python 3.0x

首先Python 3的版本是现在与未来的主流版本

在Python3.5+以及以上的版本,不支持Windows xp以及更低的系统

并且在Windows 7当中必须安装sp1补丁包才可以运行

建议选择Python 3.6.1-2017-03-21这种文件名的版本,是比较稳定发布的版本

Python特点

  • 1.易于学习:Python有相对较少的关键字,结构简单,和一个明确定义的语法,学习起来更加简单。
  • 2.易于阅读:Python代码定义的更清晰。
  • 3.易于维护:Python的成功在于它的源代码是相当容易维护的。
  • 4.一个广泛的标准库:Python的最大的优势之一是丰富的库,跨平台的,在UNIX,Windows和Macintosh兼容很好。
  • 5.互动模式:互动模式的支持,您可以从终端输入执行代码并获得结果的语言,互动的测试和调试代码片断。
  • 6.可移植:基于其开放源代码的特性,Python已经被移植(也就是使其工作)到许多平台。
  • 7.可扩展:如果你需要一段运行很快的关键代码,或者是想要编写一些不愿开放的算法,你可以使用C或C++完成那部分程序,然后从你的Python程序中调用。
  • 8.数据库:Python提供所有主要的商业数据库的接口。
  • 9.GUI编程:Python支持GUI可以创建和移植到许多系统调用。
  • 10.可嵌入: 你可以将Python嵌入到C/C++程序,让你的程序的用户获得"脚本化"的能力

在一个 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 C
if 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 = True
    VIDEO_FPS = 20
    VIDEO_WIDTH = 1280
    VIDEO_HEIGHT = 720

然后在别的文件用:

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

五、总结对照表

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

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

到此这篇关于Python 文件常数引用问题小结的文章就介绍到这了,更多相关Python 文件常数引用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • pandas数据类型之Series的具体使用

    pandas数据类型之Series的具体使用

    本文主要介绍了pandas数据类型之Series的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • python网络编程学习笔记(三):socket网络服务器

    python网络编程学习笔记(三):socket网络服务器

    服务器和客户端程序很类似,上节学习了客户端程序,这一节将仔细学习一下利用socket建立TCP服务器和UDP服务器
    2014-06-06
  • 探索Python定时任务实现高效时间管理

    探索Python定时任务实现高效时间管理

    这篇文章主要为大家介绍了探索Python定时任务高效实现高效时间管理,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-01-01
  • 双向RNN:bidirectional_dynamic_rnn()函数的使用详解

    双向RNN:bidirectional_dynamic_rnn()函数的使用详解

    今天小编就为大家分享一篇双向RNN:bidirectional_dynamic_rnn()函数的使用详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01
  • Python中“FileNotFoundError: [Errno 2] No such file or directory”的解决办法

    Python中“FileNotFoundError: [Errno 2] No 

    最近在使用vscode写代码(python)时发现使用相对路径读取文件以及写入文件时,想要直接在当前目录下读写一直提示没有该文件,需要返回根目录,所以本文给大家介绍了Python中“FileNotFoundError: [Errno 2] No such file or directory”的解决办法,需要的朋友可以参考下
    2025-06-06
  • Python实现基本Socket服务端与客户端通信的完整代码

    Python实现基本Socket服务端与客户端通信的完整代码

    这篇文章主要介绍了Python实现基本Socket服务端与客户端通信,分步详解与完整代码都有,按需所求即可,对Python Socket服务端与客户端通信相关知识感兴趣的朋友一起看看吧
    2023-06-06
  • python如何对数组进行降维

    python如何对数组进行降维

    这篇文章主要介绍了python如何对数组进行降维问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • 使用Python实现全能手机虚拟键盘的示例代码

    使用Python实现全能手机虚拟键盘的示例代码

    在数字化办公时代,你是否遇到过这样的场景:会议室投影电脑突然键盘失灵、躺在沙发上想远程控制书房电脑、或者需要给长辈远程协助操作?今天我要分享的Python全栈项目,只需30行核心代码就能让手机变身全能虚拟键盘!本文将深度解析技术实现,并附完整可运行代码
    2025-04-04
  • 详解利用Python scipy.signal.filtfilt() 实现信号滤波

    详解利用Python scipy.signal.filtfilt() 实现信号滤波

    这篇文章主要介绍了详解利用Python scipy.signal.filtfilt() 实现信号滤波,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-06-06
  • python爬虫MeterSphere平台执行报告使用进阶

    python爬虫MeterSphere平台执行报告使用进阶

    这篇文章主要为大家介绍了python爬虫MeterSphere平台执行报告使用进阶示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-12-12

最新评论