Определение цвета в питоне - PullRequest
2 голосов
/ 17 августа 2011

У меня есть вопрос, который может быть прямым или невозможным, я не уверен.Мне интересно, как я могу определить цвет в Python.

Например, я хотел бы просто сделать это:

myColor = #920310

Однако, автоматически используя знак '#' в Pythonкомментирует что-нибудь следующее.Это можно обойти?Спасибо и извините, если этот вопрос очень прост

Ответы [ 4 ]

9 голосов
/ 17 августа 2011

Если вы хотите, чтобы это было в виде строки, выполните

myColor = '#920310'

Если вы действительно хотите, чтобы это был объект Color, вы можете сделать что-то вроде

myColor = Color('#920310')

и интерпретироватьэто в конструкторе Color.

Если вопрос в том, можете ли вы сделать # не интерпретируемым как комментарий, тогда ответ - нет.Если бы # не было комментарием, это больше не был бы Python.

Вы можете определить свой собственный Python-подобный язык, где # после = не будет означать комментарий (так как это в любом случае не является допустимым Python) и не будет нарушать любой код, новы не сможете использовать синтаксис # в другом месте, не нарушая код.

3 голосов
/ 17 августа 2011
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 голосов
/ 17 августа 2011

В зависимости от того, как вы планируете использовать значения, у вас есть много вариантов:

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
1 голос
/ 17 августа 2011
mycolor = '#<colorcodehere>'

mycolor будет выглядеть как строка, поэтому все внутри вершин будет читаться (тоже #)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...