我目前正在用Python编写一个调色板生成器。我希望能够输入一个Mode作为一个参数,它将产生一种特定类型的配色方案。像COMPLEMENTARY或PASTEL等。
我见过像colorMode(HSB)和colorMode(RGB)这样的函数,其中一个参数是"模式"。我以前见过这么多次,它们通常都是大写的,IDE通常会以某种方式对它们进行颜色编码。这些模式通常如何存储在函数中?它们是彩色编码的,因为它们是某种类?或者它们是存储为字符串还是数字?
很抱歉,如果这样的问题已经存在,我只是不知道用什么类型的行话来描述这种情况。
答案 0 :(得分:1)
您可以使用枚举库。例如,创建一个" Mode"就像你想要的那样:
from enum import Enum
class ColorMode(Enum):
COMPLEMENTARY = 1
PASTEL = 2
之后您可以使用以下方式访问它:
ColorMode.COMPLEMENTARY
答案 1 :(得分:1)
使用enum
module:
import enum
class Mode(enum.Enum):
COMPLEMENTARY = 1
PASTEL = 2
def colorMode(mode):
return "using color mode {}".format(mode)
if __name__ == "__main__":
print(colorMode(Mode.COMPLEMENTARY))
print(colorMode(Mode.PASTEL))
输出:
using color mode Mode.COMPLEMENTARY
using color mode Mode.PASTEL
答案 2 :(得分:1)
其他答案对于一般开发是正确的,但由于您已使用processing对其进行了标记,因此我将解释Processing如何做到这一点。
Processing(和Processing.py)不使用枚举值。它只使用int
值。
在Java(常规处理)中,只定义了一堆int
个变量。这发生了here,但它基本上是这样的:
int RGB = 1;
int ARGB = 2;
int HSB = 3;
因此,无论何时使用其中一个变量,您只需引用这些值。
colorMode(HSB);
这与您键入的内容相同:
colorMode(3);
然后在colorMode()
函数内部,Processing执行以下操作:
void colorMode(int mode){
if(mode == RGB){
// do something
}
else if(mode == HSB){
// do something else
}
}
我使用Java作为示例,因为我对它更熟悉,但请注意,这在Processing.py参考here中有所解释:
模式
int
:RGB或HSB,对应红/绿/蓝和色调/饱和度/亮度
请注意mode
是int
。
如果您正在编写自己的代码,那么枚举值可能就是您的选择。但是,如果你在询问Processing如何在内部执行,那么他们会使用int
值。