我有一个具有多个绘图功能的模块,并且我想有两个颜色主题,一个主题为浅色,另一个为深色。

我说我有两种方法:

def plot_function_1(color_dark='#212121'):
    ...

def plot_function_2(color_dark='#212121'):
    ...


感觉有点多余。解决这个问题的最有效方式是什么?我可以在模块COLOR_DARK = '#212121'中定义一个变量,然后调用:

def plot_function_1(color_dark=COLOR_DARK):
    ...

最佳答案

创建一种颜色的dict并传递所需的一种。

color_dict = {'COLOR_DARK': '#212121', 'COLOR_LIGHT': '#121212'}

def plot_function_1(color):
    print(color)


plot_function_1(color_dict['COLOR_DARK'])


输出:

#212121


另一种方法(使用枚举):

from enum import Enum

class Color(Enum):
    DARK_COLOR = 200
    LIGHT_COLOR = 400
    DARKER_COLOR = 500
    LIGHTER_COLOR = 222

    print(Color.DARK_COLOR.name)
    print(Color.DARK_COLOR.value)


输出:

DARK_COLOR
200


类似地:

def plot_function_1(color):
    print(color)


plot_function_1(Color.DARK_COLOR.name)    # or use .value if required

07-26 09:10