有关在使用自己的模块时对变量进行硬编码的最佳实践的问题

时间:2018-10-18 18:03:25

标签: python python-3.x

在尝试使用硬编码的变量和模块时,是否有一些推荐的最佳实践。我想,一般来说,硬编码变量应该进入某种包含程序主要执行部分的主脚本中,但是当涉及到您自己创建的附加模块时,可以说包含大量功能的东西。为了简化起见,最好在单独的模块中找到最好的方法,我想知道是否最好使模块中的所有内容都可以从其他脚本中“调用”起来,或者即使主程序应该在其中包含硬编码的var,还是可以的?谢谢!

1 个答案:

答案 0 :(得分:1)

永远不要硬编码任何东西,

主程序也不是包含它们的地方,只会变得凌乱。

Python有模块。

因此,我本人使用称为“ Python配置文件”的东西。

警告:示例未反映最佳编程实践。

# config.py
import os

LIBRARY_VERSION = "1.0.0"

MY_VARIABLE = "This is my variable!"
if os.name == "nt":
    DEFAULT_PATH = "C:/"
elif os.name == "posix":
    DEFAULT_PATH = "/home/"
else:
    raise Exception("This library does not support your operating system.")

现在,您的配置已全部设置好,您可以在代码中使用其变量名称,这些变量名称具有明确的显式含义,并且也包含在它们不会污染那些不关心它们的模块的命名空间的地方:

# main.py
import os

import config

os.chdir(config.DEFAULT_PATH)
print(f"Cool Library {config.LIBRARY_VERSION} is ready!")

Python for Python项目是您将永远使用的最佳配置语言。

如果您有多个模块,则可以通过具有多个配置或仅使用LIBRARY_STUFF_VARIABLE_NAME来保持合理,例如,openGL API具有以下内容:GL_TEXTURE_2D

因此,如果您的库是Cool Library,则可以将其缩短为CL,如果有一个名为Cool Module的模块,则可以将其缩短为CM,您将得到是CL_CM_VARIABLE,显然,它会选择更好的名称,但是如果您使用简短且一致的命名方式,它将易于使用,并且比整个随机image.png1更具可读性代码。