使用多模块Python

使用多模块Python,python,module,pygame,Python,Module,Pygame,我目前正在制作一个使用多个模块运行的游戏。然而,当我试图运行程序时,模块似乎不起作用。例如,当程序无法识别主程序中模块的函数时 我希望不接收到来自上面的错误消息。除此之外,我还想认识什么是绝地 这是我的密码: 主要(模块): 绝地(模块): 您需要以正确的方式导入该类。例如: 从package.module导入类 在你的情况下,请将绝地导入绝地中的的内容缩减为a并解释:1。你所期望的;二,。发生了什么。我猜您应该调用jedi.jedi(),因为您正在尝试创建jedi对象,该对象是jedi文件的

我目前正在制作一个使用多个模块运行的游戏。然而,当我试图运行程序时,模块似乎不起作用。例如,当程序无法识别主程序中模块的函数时

我希望不接收到来自上面的错误消息。除此之外,我还想认识什么是绝地

这是我的密码:

主要(模块):

绝地(模块):


您需要以正确的方式导入该类。例如:

从package.module导入类


在你的情况下,请将绝地导入绝地中的

的内容缩减为a并解释:1。你所期望的;二,。发生了什么。我猜您应该调用
jedi.jedi()
,因为您正在尝试创建
jedi
对象,该对象是
jedi
文件的一部分。但正如@jonrsharpe所提到的,如果没有McVe,你很难判断你是否可以在你的进口中尝试使用来自绝地进口的绝地。检查Python中的导入我已经编辑了代码,很抱歉,我很少在stack over flow上发布。我不明白为什么你不能直接“导入jedi”你能给我解释一下吗?
jedi
是你导入的模块的名称
Jedi
是该模块中定义的特定类的名称。Python有两种不同的导入方式:
import[module]
或从[module]import[thing]导入
。如果使用第一个模块,您将从模块导入所有内容,但是当您使用导入的内容时,您必须指定它来自哪个模块(因此在您的示例中,您必须使用
Jedi.Jedi
调用Jedi类)。如果使用第二种方法,则只导入您请求的模块的特定位,但可以使用它而不命名模块(因此,只需
Jedi
)。
import jedi


def mains():
    jedi = Jedi()


if __name__ == '__main__':
    mains()
import pygame

class Jedi(pygame.sprite.Sprite):
    def __init__(self):
        super().__init__()
        self.move_rights = []
        self.move_lefts = []
        self.image = pygame.image.load("obileft.png")
        self.move_lefts.append(self.image)
        self.image = pygame.transform.flip(self.image, True, False)
        self.move_rights.append(self.image)
        self.sprite_x_change = 0
        self.sprite_y_change = 0
        self.rect = self.image.get_rect()
        self.rect.y = 400
        self.rect.x = 120
        self.nextLevel = False
        self.right = False
        self.left = False
        self.jump = False
        self.lightsaberRight = False
        self.lightsaberLeft = False
    # Mobility: Left, right, up and stop