使用python方法将变量传输到另一个文件

时间:2016-07-03 23:20:11

标签: python pygame

我有两个不同的文件:

文件名Game.py

this.$('#symptoms2').selectpicker('val', test2);

文件名Player.py

from objects import *
...
player = Player()
self.screen.blit(player.draw[0], player.draw[1])
...

文件夹看起来像这样

class Player
  def __init__(self)
    player = pygame.Rect(0, 0, Tilewidth, Tileheight)
    player_image = pygame.image.load('media/player.jpg')
    player_stretch_image = pygame.transform.scale(player_image, (Tilewidth, Tileheight))
  ...
  def draw
    array = [player_stretch_image, player]
    return array

这不起作用,我不知道为什么。我想在不使用“import everything”的情况下使用其他文件中的一些变量。

有没有其他方法可以使用变量全局使用方法,还是应该创建包含所有变量的第三个文件然后将它们导入文件?

我还是Python的新手,所以我真的不知道解决这个问题的方法。

2 个答案:

答案 0 :(得分:0)

在Python中,' import'可以轻松访问具有相同文件路径的任何文件或文件夹。因此,为什么不将Game和Player文件放在同一个文件夹中?如果这样做,您可以使用以下方法导入选择变量:

from Game import <variable>, <another variable>, <etc...>
在播放器文件中

,并通过文件中的那些名称引用它们(不需要module.var)。否则,如果您想将python文件保存在不同的文件路径中,我建议您查看此回复:

How to import a module given the full path?

编辑: 我可以通过将对象文件的内容导入到Game中来查看您正在做什么,但是因为您还希望能够从Player文件中访问Game变量,我会说您可以:

  • 保持变量是对象文件夹中的文件,Game对象和Player对象都可以访问该文件

  • 或简单地将Game对象放在与Player对象相同的文件夹中,其中变量可以保存在Game中并使用上面的代码访问。

希望这有帮助!

答案 1 :(得分:0)

而不是from objects import *在Game.py中尝试

from objects.player import Player

良好的做法是避免使用通配符导入(*)来避免名称空间污染,如here所述。而是从其他模块中选择您需要的内容并明确导入。