我有一个问题可能是直截了当的,或者可能无法回答,我不确定。我想知道如何在python中定义颜色。
例如,我想简单地这样做:
myColor = #920310
然而,在python中使用'#'符号会自动注释以下内容。 有没有解决的办法?如果这个问题很简单,谢谢你,对不起
答案 0 :(得分:9)
如果您想将其作为字符串,请执行
myColor = '#920310'
如果您确实希望它是Color
对象,您可以执行类似
myColor = Color('#920310')
并在Color
的构造函数中解释它。
如果问题是你可以#
不能被解释为评论,那么答案是否定的。如果#
不是评论,则不再是Python。
您可以定义自己的类似Python的语言,其中#
之后的=
并不意味着评论(因为那不是有效的Python),它不会破坏任何代码,但是你不能在不破坏代码的情况下在其他地方使用#
语法。
答案 1 :(得分:3)
myColor = int('920310', 16) #as an integer (assuming an RGB color in hex)
myColor = '#920310' #as a string
from collections import namedtuple
Color = namedtuple("Color", "R G B")
myColor = Color(0x92, 0x03, 0x10)
#as a namedtuple
您可能正在寻找许多东西,同样多的方法可以使用它。最终,这取决于你想要如何使用这种颜色。
答案 2 :(得分:2)
根据您计划使用这些值的方式,您有很多选择:
colorString = "#920310"
colorList = [0x93, 0x03, 0x10]
colorTuple = (0x93, 0x03, 0x10)
colorDict = {
"R" : 0x93,
"G" : 0x03,
"B" : 0x10,
}
或者,如果您打算使用多种操作来处理颜色,比如转换为不同的格式,您可以定义Color类:
class Color(object):
def __init__(self, r, g, b):
self._color = (r,g,b)
def get_tuple(self):
return self._color
def get_str(self):
return "#%02X%02X%02X" % self._color
def __str__(self):
return self.get_str()
def get_YUV(self):
# ...
使用示例:
>>> a = Color(0x93, 0x03, 0xAA) # set using hex
>>> print a
#9303AA
>>> b = Color(12, 123, 3) # set using int
>>> print b
#0C7B03
答案 3 :(得分:1)
mycolor = '#<colorcodehere>'
mycolor将被视为一个字符串,因此顶点内的所有内容都将被读取(#too)