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 文字列 ( unicodePython 2 ではstr3 で呼び出されます) であり、バイト文字列 (Python 2 ではPython 3 ではorb'red'と呼ばれます) です。strbytesbytes

pygame.Colorバイト文字列のみを受け入れるため、次のように渡しますb'red'

>>> __future__ import unicode_literals から
>>> pygame.Color('赤')
トレースバック (最新の呼び出しが最後):
  ファイル ""、1 行目、
ValueError: 無効な引数
>>> pygame.Color(b'red')
(255, 0, 0, 255)
于 2012-07-01T03:03:34.737 に答える