我在一个名为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
我该怎么做?
答案 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
然后您的代码应该有效。但是,您可以看到,您将无法区分机器人是模块还是类,因此您不应该将类和文件命名为同名。