python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python 文件常数引用

Python 文件常数引用问题小结

作者:年六季

Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言,本文给大家介绍Python 文件常数引用问题小结,感兴趣的朋友跟随小编一起看看吧

了解Python

Python介绍

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

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

① Python 2.0x

② Python 3.0x

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

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

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

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

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 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 文件常数引用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文