【问题标题】:Error using functions from another script in python在 python 中使用另一个脚本中的函数时出错
【发布时间】:2016-07-04 04:50:44
【问题描述】:

我正在努力让我的编程更有条理,所以我决定使用多个 python 文件来组织我的游戏。出于某种原因,我不能使用另一个脚本中的函数。我运行游戏的主要脚本称为 main.py ,我尝试使用其中的函数的脚本是 gamemap.py 。这是我用来执行此操作的代码

import pygame,sys,time
import gamemap as g

pygame.init()
pygame.mixer.init()
screen = pygame.display.set_mode((800,600))
#Pictures


enemy = pygame.image.load("enemy_reg.png")
player = pygame.image.load("player_reg.png")
player_shot = pygame.image.load("playershot.png")
enemy_shot = pygame.image.load("shot.png")
g.loadmapstuff()

【问题讨论】:

  • 你遇到了什么错误?
  • 你试过'sudo touch _init_.py'还是在windows上创建新文件_init_ .py 在你的文件所在的目录中?
  • 如果你想导入一个模块,那么你需要将你的文件命名为__init__.py,并把它放在一个以你的模块名称命名的文件夹下。然后,从位于该文件夹旁边的另一个文件中,您可以使用 import 后跟文件夹名称导入该模块。
  • 错误是:Traceback(最近一次调用最后一次):文件“C:\Users\ihiouh\Desktop\game\main.py”,第 2 行,在 中 import gamemap as g 文件"C:\Users\ihiouh\Desktop\game\gamemap.py",第 1 行,在 中从主导入 * 文件 "C:\Users\ihiouh\Desktop\game\main.py",第 20 行,在 g.loadmapstuff() AttributeError: 'module' object has no attribute 'loadmapstuff' [Finished in 0.8s]
  • 创建文件“C:\Users\ihiouh\Desktop\game\__init__.py

标签: python python-2.7 pygame


【解决方案1】:

当您创建自己的模块(在您的情况下为gamemap.py)时,您必须在包含您的模块的文件夹中创建并清空文件调用__init__.py

有了这个文件(__init__.py)python就知道这个文件夹是一个包,然后你就可以import里面的模块了。

我建议您阅读有关此问题的官方文档-> Modules and Packages

【讨论】:

    【解决方案2】:

    请检查这两个文件是否在同一目录下。

    你也可以使用

    from gamemap import loadmapstuff
    
    loadmapstuff()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-21
      • 2022-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多