TypeError:text必须是unicode或bytes

时间:2015-03-02 21:26:37

标签: python unicode

我在查找错误时遇到了一些麻烦。当我尝试运行代码时,我得到以下输出:

Traceback (most recent call last):
  File "C:/Users/PC/Documents/Python_Projects/Segundo Teste/Game.py", line 133, in <module>
    set_message(message)
  File "C:/Users/PC/Documents/Python_Projects/Segundo Teste/Game.py", line 61, in set_message
    message = font.render(text, True, black, white)
TypeError: text must be a unicode or bytes

这些是代码行:

if message != previous_message:
   set_message(message) --> line 133

def set_message(text):
  global message, previous_messsage
  message = font.render(text, True, black, white) --> line 61
  previous_messsage = message

1 个答案:

答案 0 :(得分:0)

Font.render() method返回一个Pygame Surface实例。来自文档:

  

<强>渲染()
  将渲染文本作为曲面返回
  render(text, fgcolor=None, bgcolor=None, style=STYLE_DEFAULT, rotation=0, size=0) -> (Surface, Rect)

     

返回一个新的Surface,其中的文本以'fgcolor'给出的颜色呈现给它。

您正在尝试渲染Surface个实例;它不是文本而不是unicode。目前还不清楚你期望previous_message是什么,但你正在做的事情是行不通的。

我在这里忽略你的变量拼写错误; previous_messsageprevious_message的名称不同;后者拼写正确,但你在set_message()中使用前者。