gpt4 book ai didi

python - 在 Python 中正确使用类常量

转载 作者:太空狗 更新时间:2023-10-29 21:37:24 26 4
gpt4 key购买 nike

这个问题具体涉及下面示例代码中类常量 ABOVEBELOW 的使用。

我在不同的模块中有几个不同的类,如下所示:

class MyClass(object):
ABOVE = 1
BELOW = 0

def __init__(self):
self.my_numbers = [1,2,3,4,5]

def find_thing_in_direction(self, direction, cutoff):
if direction == self.ABOVE:
return [n for n in self.my_numbers if n > cutoff]
else:
return [n for n in self.my_numbers if n < cutoff]


my_class = MyClass()
my_var = my_class.find_thing_in_direction(MyClass.ABOVE, 3)

如果我有一些分散在不同模块中的类,每个模块都有自己的 ABOVEBELOW,我应该将这些常量提取到某个地方,还是更好将常量保留在自己的类中?

是否有更 Pythonic 的方法来代替使用这些类常量?

最佳答案

您似乎正在使用类作为常量的命名空间。您应该问问自己,每个类中的 ABOVEBELOW 常量之间是否存在某些差异。

如果需要区分(不仅仅是数字差异,还有语义差异),那么将它们存储在它们所代表的类中是最好的方法。另一方面,如果它们在每个类中都具有相同的语义,那么您就没有坚持 DRY 原则,而是在重复代码。

解决方案可以将它们存储在模块级别,或者创建一个类来仅包含常量。

关于python - 在 Python 中正确使用类常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22232508/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com