1

使用时使用 pygame.Color 名称的正确方法是什么unicode_literals

Python 2.7.3 (v2.7.3:70274d53c1dd, Apr  9 2012, 20:52:43) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import pygame
>>> pygame.ver
'1.9.2pre'
>>> pygame.Color('red')
(255, 0, 0, 255)
>>> from __future__ import unicode_literals
>>> pygame.Color('red')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid argument
4

2 回答 2

1
>>> type('red')
str

>>> from __future__ import unicode_literals

>>> type('red')
unicode

>>> type(str('red'))
str

>>> import pygame

>>> pygame.ver
'1.9.1release'

>>> pygame.Color(str('red'))
(255, 0, 0, 255)
于 2012-06-30T22:27:45.290 回答
1

启用后unicode_literals,Python 2 解释字符串文字的方式与 Python 3 相同。也就是说,'red'它是一个 Unicode 字符串(unicode在 Python 2 中,在 3 中调用) ,str并且b'red'是一个字节字符串(在 Python 2 中,在 Python 3 中调用)。strbytesbytes

由于pygame.Color只接受一个字节串,传递它b'red'

>>> 从 __future__ 导入 unicode_literals
>>> pygame.Color('红色')
回溯(最近一次通话最后):
  文件“”,第 1 行,在
ValueError:无效的参数
>>> pygame.Color(b'red')
(255, 0, 0, 255)
于 2012-07-01T03:03:34.737 回答