Python: Как использовать константы для множественного предложения? - PullRequest
0 голосов
/ 23 сентября 2010

Я хочу использовать константу в 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 ]

1 голос
/ 23 сентября 2010

Местоположение "константы" выглядит для меня нормально. Как прокомментировал @pyfunc, вы можете также объявить другие значения цвета / шрифта как «константы».

Если вы ожидаете много пользовательских цветов и / или шрифтов, вы можете подумать об отдельном модуле или файле свойств / конфигурации.

[pedantic] В Python нет "константы", как вы, похоже, подразумеваете. Вы устанавливаете переменную на уровне модуля, вот и все. Все заглавные буквы - это соглашение, используемое для указания того, что значение не должно изменяться. Ничто не мешает его изменить. [/ Педантичный]

0 голосов
/ 23 сентября 2010

Примерно так должно быть лучше:

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")
...