Python:如何将常量用于多个类?

时间:2010-09-23 07:46:30

标签: python class constants

我想在Python中使用2个类的常量。 哪种方式更好?提前谢谢!

MY_COLOR = "#000001" # <-------- Are correct here?
BLACK = "#000000"    # <-------- Are correct here?

class One:

    MY_FONT = "monospace"

    def __init__(self):
        if MY_COLOR == BLACK:
            print("It's black")

        if self.MY_FONT == "monospace":
            print("Font equal")


class Two:

    def __init__(self):
        if MY_COLOR == BLACK:
            print("It's black")

2 个答案:

答案 0 :(得分:1)

“常数”的位置对我来说很好看。正如@pyfunc所述,您可能还想将其他颜色/字体值声明为“常量”。

如果您需要大量自定义颜色和/或字体,则可能需要考虑单独的模块或属性/配置文件。

[迂腐] Python中没有“常量”,就像你暗示的那样。您正在模块级别设置变量,即全部。全部大写是用于指示不应更改该值的约定。没有什么能阻止它被改变。 [/迂腐]

答案 1 :(得分:0)

这样的事情会更好:

BLACK = "#000000"
GREY  = "#111111"
MONO  = "monospace"

class One:
    def __init__(self, color, font ):
        if color == GREY:
            print("Color not equal")

        if font == "MONO:
            print("Font equal")