我正在编写一个实用程序模块,以便于处理数据文本文件.我已经声明了一些模块级常量来为我的方法参数提供默认值,因为现在我只使用这些值,但我希望我的代码很容易适应.
但是一些常量不容易硬编码.例如,我只能使用re的pattern对象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在类继承的上下文中具有特定含义,但通常不应在其他任何地方使用.)
| 归档时间: | 
 | 
| 查看次数: | 425 次 | 
| 最近记录: |