Python:类不能从单独的文件中调用?

时间:2014-03-03 22:24:56

标签: python pygame

我在一个名为robot.py

的文件中有一个类robot

我想在我的主脚本中创建一个机器人实例,如下所示:

在robot.py中:

class robot(object):
    def __init__(self,pygame,screen_width,screen_height):
在main.py中

import pygame, sys, copy
import mouse
import robot
import menu
import button
from pygame.locals import *
...
size = [1200,900]
my_robot = robot(pygame,size[0]-400,size[1]-100)

错误:

me:cup-robot Me$ python run.py
Traceback (most recent call last):
  File "run.py", line 24, in <module>
    my_robot = robot(pygame,size[0]-400,size[1]-100)
TypeError: 'module' object is not callable

我该怎么做?

2 个答案:

答案 0 :(得分:6)

更改您的导入声明:

from robot import robot

您将robot定义为模块(robot.py)和类。您需要从模块中导入该类,以便公开提供。

答案 1 :(得分:6)

两种选择:

import robot然后将所有机器人加上前缀:

my_robot = robot.robot(pygame,size[0]-400,size[1]-100)

from robot import robot然后您的代码应该有效。但是,您可以看到,您将无法区分机器人是模块还是类,因此您不应该将类和文件命名为同名。