Python:将函数定义为包含属性列表作为变量

2024-05-16 08:42:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用以下类将整数和字符串值格式化为所需格式,如下所示:

class bcolors:
    HEADER = '\033[95m'
    OKBLUE = '\033[94m'
    OKGREEN = '\033[92m'
    WARNING = '\033[93m'
    FAIL = '\033[91m'
    ENDC = '\033[0m'
    BOLD = '\033[1m'
    UNDERLINE = '\033[4m'

print(bcolors.WARNING + "Sample Warning Text. Continue?" + bcolors.ENDC)

但是,我的目标是实现以下功能:

color_format(input,format)

这将使格式的使用更容易

在函数中是否有定义可能选项数组的选项?例如

def color_format(input, format)
         format = [
                   HEADER = '\033[95m',
                   OKBLUE = '\033[94m',
                   OKGREEN = '\033[92m',
                   WARNING = '\033[93m',
                   FAIL = '\033[91m',
                   ENDC = '\033[0m',
                   BOLD = '\033[1m',
                   UNDERLINE = '\033[4m'
                   ]
          print(format + input + ENDC='\033[0m')
color_format("This is a bold text",BOLD)

~这是一个粗体文本

我非常感谢你的帮助


Tags: formatinput格式选项colorheaderfailprint
1条回答
网友
1楼 · 发布于 2024-05-16 08:42:25

是的,您可以使用dict实现从名称到值的映射

FORMATS = {
    'HEADER': '\033[95m',
    'OKBLUE': '\033[94m',
    'OKGREEN': '\033[92m',
    'WARNING': '\033[93m',
    'FAIL': '\033[91m',
    'ENDC': '\033[0m',
    'BOLD': '\033[1m',
    'UNDERLINE': '\033[4m'
}

def color_format(text, format):
    try:
        formatted = FORMATS[format] + text + FORMATS['ENDC']
    except KeyError:
        print('Invalid format! Possible values are: ', FORMATS.keys())
    else:
        print(formatted)

相关问题 更多 >