Python文件常数引用问题小结

作者:

文章目录
  • 可单独建一个文件,例如: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
  • 比如在 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 文件常数引用内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客! 您可能感兴趣的文章: Python Math数学函数常数幂和对数基础应用实例 python实现高精度求自然常数e过程详解 python中文件夹py文件相互引用方式 python无法引用另一个文件夹的py文件问题及解决 对python同一个文件夹里面不同.py文件的交叉引用方法详解 对python当中不在本路径的py文件的引用详解
  • 目录
    • 了解Python
      • Python介绍
      • Python特点
    • 这在工程化中非常常见
      • 一、定义常数文件(比如 config_const.py)
        • 二、在其他 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这种文件名的版本,是比较稳定发布的版本

                • 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
                # -------------------------
                # 全局常数定义文件
                # -------------------------
                # 视频保存相关
                SAVE_VIDEO = True
                VIDEO_FPS = 20
                VIDEO_WIDTH = 1280
                VIDEO_HEIGHT = 720
                # 模型路径
                MODEL_PATH = "weights/lane_detect_model.engine"
                # 其他常量
                DETECTION_THRESHOLD = 0.5

                比如在 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 文件常数引用内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客!

                您可能感兴趣的文章:

                • Python Math数学函数常数幂和对数基础应用实例
                • python实现高精度求自然常数e过程详解
                • python中文件夹py文件相互引用方式
                • python无法引用另一个文件夹的py文件问题及解决
                • 对python同一个文件夹里面不同.py文件的交叉引用方法详解
                • 对python当中不在本路径的py文件的引用详解

                站内搜索