文件仅在从某个地方打开时才导入

时间:2014-07-12 01:53:01

标签: python import pygame

我正在为一个学校项目制作游戏,而现在我只是专注于让它顺利运行文件。

我所拥有的文件名称为:

  • main.py(菜单文件)
  • Ship.py(这是实际的游戏部分),
  • inputName.py(用户输入其姓名的地方)
  • eztext.py(这是'inputName.py'正在运行的模块)
  • certificate.py(带有打印人员姓名/分数等菜单的文件屏幕)
当用户选择开始时,

Main.py链接到ship.py

menu_items = ('Start', 'Quit')
funcs = {'Start': Difficulty,
         'Quit':quit}
def ship1():
    import Ship1

当用户输掉游戏时(目前我只是在点击游戏时将其设置为已结束),它会链接到nameInput.py

for event in pygame.event.get():
   if event.type == QUIT:
      pygame.quit()
      sys.exit()
   if keys[pygame.K_LEFT]:
      ship_r.move_ip(-6, 0)
   elif keys[pygame.K_RIGHT]:
      ship_r.move_ip(+6, 0)
   elif event.type == pygame.MOUSEBUTTONDOWN:
      execfile('nameInput.py')

当用户写下他们的名字并按下回车时,这是

if event.type == KEYDOWN:
    if event.key == K_BACKSPACE: self.value = self.value[:-1]
    elif event.key == K_LSHIFT or event.key == K_RSHIFT: self.shifted = True
    elif event.key == K_SPACE: self.value += ' '
    elif event.key == K_RETURN: execfile("Certificate.py")

我的问题是,如果我运行文件Ship.py然后“丢失”它将运行inputName.py就好了,但如果我从头开始运行(main.py)它导入'ship.py'并且我“丢失”它不会导入它只是关闭的inputName.py。

同样在调用其他文件“execfile(”ExampleFile.py“)”是唯一对我有用的东西,是吗?只是做'import nameInput'对我不起作用

1 个答案:

答案 0 :(得分:0)

取代execfile('nameInput.py')使用

import nameInput
nameInput.main()

也许在nameInput.py你必须移动

img = pygame.image.load('images/Background_Logo.png')
WHITE = ( 255, 255, 255)
BLACK = ( 0, 0, 0)

main()内 - 但可能不是。


Ship1.py中,您必须创建函数main()(如nameInput.py中所示),然后代替execfile('Ship1.py')import Ship1使用

import Ship1
Ship1.main()

似乎就是这样。

您可以在文件开头移动所有import - 如果有人会看到您的代码,他就会知道他需要的其他文件。


BTW:代码可以重新组织,只使用pygame.init()一次 - 但“这是另一个故事”