python - 如何编写一个以 "Mode"作为参数的 Python 函数?

标签 python arguments processing

我目前正在用 Python 编写一个调色板生成器。我希望能够输入模式作为参数,以产生特定类型的配色方案。像互补或粉彩等。

我见过像 colorMode(HSB) 与 colorMode(RGB) 这样的函数,其中参数之一是“Mode”。我以前见过很多次,它们通常都是大写字母,IDE 通常以某种方式对它们进行颜色编码。这些模式通常如何存储在函数中?它们用颜色编码是因为它们是某种类吗?或者它们存储为字符串或数字?

抱歉,如果这样的问题已经存在,我只是不知道该使用什么类型的术语来描述这种情况。

最佳答案

其他答案对于一般开发来说是正确的,但是因为您已经用 标记了它,我将解释处理是如何做到的。

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 中都有解释。 :

mode int: Either RGB or HSB, corresponding to Red/Green/Blue and Hue/Saturation/Brightness

请注意,mode 是一个 int

如果您正在编写自己的代码,则枚举值可能是最佳选择。但如果您询问 Processing 在内部如何执行此操作,那么他们会使用 int 值。

关于python - 如何编写一个以 "Mode"作为参数的 Python 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49260433/

相关文章:

python - 如何从该列表中找到范围、平均值和前三个值而不出现类型错误?

python - 防止python覆盖包括虚拟环境站点包

python - matplotlib 和子图属性

c - 没有参数的格式说明符

c++ - 匹配两个字符串的宏定义

java - HashMap 不适用于用户定义的键类

java - 改变落球速度...处理中

javascript - 如何使我绘制的指数函数在 Canvas 内增长?

python - 提取 pandas 中包含多行和多列的 JSON 字符串列的部分

c++ - 我可以在实际函数调用中将静态映射定义为函数参数吗?