为什么我不能从一个单独的类中调用函数?蟒蛇

时间:2016-01-07 09:18:45

标签: 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 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

但它显然是定义的,因为我在顶部导入了模块,并且在我的IDE中它识别出Main()是模块中的一个类Fesnoria_Main

关于如何解决这个问题的任何想法?

1 个答案:

答案 0 :(得分:1)

这个最小的例子对我有用:

文件:

  1. bla.py
  2. Fesnoria_Main.py
  3. Fesnoria_Main.py内容:

    class Main(object):
       def run(self):
           print "start game"
    

    bla.py内容:

    # import all the modules
    from Fesnoria_Main import *
    
    gamesetup = Main()
    gamesetup.run()
    

    然后用:

    运行它
    python bla.py
    

    打印:

    start game
    

    所以我会尝试从这个最小的例子开始,然后回过头来找到你的错误。