我有两个不同的文件:
文件名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的新手,所以我真的不知道解决这个问题的方法。
答案 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所述。而是从其他模块中选择您需要的内容并明确导入。