Python模块问题:TypeError:'module'对象不可调用

时间:2016-07-18 07:20:50

标签: python python-2.7 module pygame

我一直在尝试用Python(和PyGame)开发一个文本冒险类游戏,因此需要一个模块来重复地将文本blit到屏幕上。搜索了几个后,我下载了KTextSurfaceWriter并安装了它。然后我尝试按照此处提供的文本(http://www.pygame.org/project-KTextSurfaceWriter-1001-.html

进行演示

我的代码:

from ktextsurfacewriter import KTextSurfaceWriter

import pygame
from pygame.locals import *
import pygame.font
pygame.font.init()
screen = pygame.display.set_mode((640,480), 0, 32)

surface = pygame.surface ( (400, 400), flags = SRCALPHA, depth = 32)
surface.fill( (255,255,255,255) )

def blitSurface():
    screen.blit(surface, (50,50) )
    pygame.display.update()

blitSurface()

def waitForUserAction():
    while True:

        for event in pygame.event.get():
            if event.type == QUIT:
                import sys
                sys.exit()
            if event.type == KEYDOWN:
                return

waitForUserAction()

但是,这会在第9行引发模块错误。我对Python很新,我在这个问题上看到的大部分解决方案都涉及使用我在开始时已经拥有的'from [module] import'代码

2 个答案:

答案 0 :(得分:2)

您正在调用pygame.surface模块:

surface = pygame.surface ( (400, 400), flags = SRCALPHA, depth = 32)

使用pygame.surface.Surface()或使用pygame.Surface()(请注意首都S);这些都是同一个类,但pygame.surface是定义它的模块。

答案 1 :(得分:0)

我看过你的代码和源代码。

surface = pygame.surface ( (400, 400), flags = SRCALPHA, depth = 32)

在您的代码中,"表面"是小写,这是一个python模块,所以python解释器告诉你错误的消息。

surface = pygame.Surface( (400,400), flags=SRCALPHA, depth=32 )

在源代码中," Surface"是资本,可能是一个阶级。