为什么可以';我不能从单独的类调用函数吗?python

为什么可以';我不能从单独的类调用函数吗?python,python,Python,这是我的密码 # import all the modules from Fesnoria_Main import * import pygame # Setup # change window settings screen = pygame.display.set_mode((600, 600), pygame.RESIZABLE) pygame.display.set_caption('Fesnoria - An epic journey.') #define configurati

这是我的密码

# import all the modules
from Fesnoria_Main import *

import pygame

# Setup
# change window settings
screen = pygame.display.set_mode((600, 600), pygame.RESIZABLE)
pygame.display.set_caption('Fesnoria - An epic journey.')

#define configuration variables here
HERO_MOVE_SPEED = 20  # pixels per second
MAP_FILENAME = 'resources/tmx/Fesnoria Town.tmx'   
MUSIC_FILENAME = "resources/music/Forest_Song.mp3"

gamesetup = Main()
gamesetup.run()
我想在另一个python模块Fesnoria_Main的Main()类中调用函数run(),如下所示

class Main(object):
   def run(self):
       print "start game"
但是当我运行脚本时,我得到了一个错误

NameError: name 'Main' is not defined
但它显然是define,因为我在顶部导入了模块,并且在IDE中它识别Main()是模块Fesnoria_Main中的一个类


关于如何解决这个问题,有什么想法吗?

这个简单的例子对我很有用:

档案:

  • 布拉·皮
  • Fesnoria_Main.py
  • Fesnoria_Main.py内容:

    class Main(object):
       def run(self):
           print "start game"
    
    # import all the modules
    from Fesnoria_Main import *
    
    gamesetup = Main()
    gamesetup.run()
    
    bla.py内容:

    class Main(object):
       def run(self):
           print "start game"
    
    # import all the modules
    from Fesnoria_Main import *
    
    gamesetup = Main()
    gamesetup.run()
    
    然后使用以下命令运行它:

    python bla.py
    
    这张照片是:

    start game
    

    因此,我将尝试从这个最小的示例开始,然后返回查找错误。

    当您尝试仅导入Main时会发生什么<代码>从Fesnoria\u Main导入Main这只是一个猜测,但可能您没有将包中的模块uuuu init\uuuuuuuuuuy.py添加到uuuuuuu所有uuuuuuuuuuu列表中?除了从
    pygame
    部分,它似乎按预期工作,它打印“开始游戏”。您可能应该发布一个最小的、完整的、可验证的示例()。