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

jas*_*cks 1 python pygame

我在一个名为robot.py的文件中有一个类robot

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

在robot.py中:

class robot(object):
    def __init__(self,pygame,screen_width,screen_height):
Run Code Online (Sandbox Code Playgroud)

在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)
Run Code Online (Sandbox Code Playgroud)

错误:

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
Run Code Online (Sandbox Code Playgroud)

我该怎么做呢?

bed*_*wyr 6

更改您的import语句:

from robot import robot
Run Code Online (Sandbox Code Playgroud)

您已将它们robot定义为模块(robot.py)和类.您需要从模块导入类,以便公开.


fre*_*ini 6

两种选择:

import robot 然后用机器人加上前缀:

my_robot = robot.robot(pygame,size[0]-400,size[1]-100)
Run Code Online (Sandbox Code Playgroud)

要么

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