当声明一个仅使用一个函数的常量时,该变量是否应该在本地声明,因为它仅由该函数使用,或全局声明,因为它永远不会改变?
IE更好:
CONSTANT = (1, 3, 5, 8)
##SOME OTHER CODE HERE
def function1(arg):
if arg in CONSTANT:
do something
或:
def function1(arg):
CONSTANT = (1, 3, 5, 8)
if arg in CONSTANT:
do something
我知道这两者之间并没有太大区别,但我只是想知道这两种做法中哪一种是首选的,因为我刚开始并希望养成良好的习惯。
答案 0 :(得分:3)
我会保持本地化。如果需要,您可以随时将其移动到全局,或者通过在类中创建方法并将常量转换为类变量来在函数之间共享它。在这些情况下,一般来说,在本地,更好,最好的方法是在您的函数中隐藏实现信息,如第二个示例中所示。它在这里没有太大的区别,但随着您的项目变得更大,可维护性和模块化将得以持续。
答案 1 :(得分:1)
我会把它们全局化,因为:
但是,如果你转向面向对象编程,那么我会将常量作为类变量。
答案 2 :(得分:0)
我会说最好的取决于具体情况。
如果执行时间不是问题,那么每次将常量加载到新变量中不会浪费太多时间。这具有明显的优势,即在代码中明确显示常量的使用位置。
否则,全局很好,但我只会出于优化目的。如果我想到它,优化是我问自己同样问题的唯一原因。
使用全局可能有其他充分的理由:
总而言之,我会说:做你认为最好的事情,但尽可能合理地将事物封装在它们所属的地方(当地人更喜欢全球化)。