如何访问主程序导入的类中的所有变量



我知道这个问题已经回答了很多次,但这些答案并不能完全解决我的问题。

在我的情况下,我需要在主程序导入的类中使用屏幕(以及level等多个其他变量(

一个常见的答案是使用变量作为参数。这对我来说不起作用,因为我不想每次上课都传递5+个参数。

另一个答案是使用from main import *。这不太好用,因为有些变量是在导入类之后创建的。

有解决办法吗?

编辑:这就是我的程序的结构:

main.py:

import module
screenX = 1000
screenY = 500
...
player = module.Player()

module.py:

class Player:
def __init__(self):
self.x = screenX
self.y = screenY
...
def go(self):
self.x += 1
if self.touchs(level):
self.die()
def touchs(self, object):
...
def die(self):
...

我希望这能有所帮助!

一个常见的答案是将变量用作参数。这对我来说不起作用,因为我不想每次上课都传递5+个参数。

我认为你低估了这种方法的灵活性。看看下面的例子:

main.py

import module
settings = {
"foo": "bar",
# ...
}
player = module.Player(settings)
player.print_foo()
settings["foo"] = "baz"
player.print_foo()

module.py

class Player:
def __init__(self, settings):
self.settings = settings
def print_foo(self):
print(self.settings["foo"])

最新更新