python - 用计算值声明模块级常量的 pythonic/更快的方法是什么?

标签 python module

我正在编写一个实用模块来轻松处理数据文本文件。我已经声明了一些模块级常量来为我的方法参数提供默认值,因为现在我只使用这些值,但我希望我的代码能够轻松适应。

但是有些常量不容易硬编码。例如 repattern 对象我只能通过 re.compile 获得。所以我写了

import re

_my_fine_pattern_string = r"some obnoxious regex"
MY_FINE_PATTERN         = re.compile(_my_fine_pattern_string)

def spam(eggs):
...

它昨天在我直接执行的脚本中运行。但现在我想知道。这段代码会在 import 上执行吗?它会减慢执行速度吗?我这样做会被烧死吗?有更好/更快的方法吗?

最佳答案

是的,这很好。它将在导入时执行。如果你有大量的计算要做(re.compile 不是),它会减慢导入速度——但这是应该的,因为你需要常量来做无论如何你的工作。

为什么要使用双下划线名称?如果要导出常量,则它们不应该使用下划线作为前缀,如果不是,那么它们应该有一个下划线。 ( double 在类继承的上下文中具有特定含义,但通常不应在其他任何地方使用。)

关于python - 用计算值声明模块级常量的 pythonic/更快的方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6059519/

相关文章:

python - Django 管理员自定义选择表单字段选择

python - 线程卡住(python w/GTK)

arrays - 将大值传递给模块

memory-management - Fortran:模块中的可分配变量

python - 运行 __main__.py 时,获取当前模块

python - 如何在pytorch的固定位置插入一个值

python - 在获取字典值时将标点符号保留在字符串中

等待用户 IO ('getchar()' 的 c++ 线程在主进程中挂起 'Py_Initialize()'

perl - 如何找到 Perl 脚本的模块依赖项?

python - 当我们导入一个模块时,Python 中有一个方法吗?