如何将元组括在引号中以将其用作函数中的字符串参数?

ves*_*and 0 python

挑战

当前者是元组时,我如何从(255, 255, 255, 0)'(255, 255, 255, 0)'

细节:

我正在使用此处描述的方法将十六进制颜色转换为 rgba 颜色。我这样做是为了使用颜色作为带有不透明度元素的参数如下所示:

color = 'rgba(255, 255, 255, 0)'
Run Code Online (Sandbox Code Playgroud)

您可能已经猜到了,参数必须是一个string类型。我已经把整数放在像这样的元组中

(255, 255, 255, 0)
Run Code Online (Sandbox Code Playgroud)

现在我需要将整个元组括在一个字符串中,就像'(255, 255, 255, 0)'进入我的最后一步:

'rgba(255, 255, 255, 0)'
Run Code Online (Sandbox Code Playgroud)

恐怕我在这里遗漏了一些明显且非常基本的 Python 元素,但是任何建议都会很棒!

Ale*_*rev 6

恐怕没有简单的转换功能,但是,这应该有效:

t = (255, 255, 255, 0)
f'rgba({t[0]}, {t[1]}, {t[2]}, {t[3]})'
Run Code Online (Sandbox Code Playgroud)

更短:

t = (255, 255, 255, 0)
f'rgba{str(t)}'
Run Code Online (Sandbox Code Playgroud)

根据上下文,我可能更喜欢第一个选项,原因有两个:

  1. 第二个选项虽然更短,但取决于str元组的实现。不太可能改变,但不太可能不代表不可能
  2. (最重要的)只是偶然发生str元组的视图符合预期的字符串模式。一旦字符串模式发生变化,追踪和修复可能是一个噩梦般的错误。

第一个选项明确地将表示与数据分开,并且还允许我们使用任何可迭代的,而不仅仅是元组。在这种情况下,使用类而不是元组可能是一个非常强大的想法。