使创建的对象对模块函数可见而不传递它们? [蟒蛇]

时间:2017-04-20 19:23:11

标签: python

我正在将游戏作为一个python学习项目,我试图摆脱单个文件。解析函数的最佳方法是什么,以便它们仍然可以访问重要对象?例如,我有一个对象基本上控制窗口并在用户调整窗口大小时计算ui元素的大小。我希望能够使用此对象的实例,而不必通过参数将其传递给每个函数。一个例子:

function.py

import test

def add_foo():

    newfoo.add()

test.py

import function

class foo:
    def __init__(self):
        self.x = 1

    def add(self):
        self.x += 10

newfoo = foo()

if __name__ == '__main__':

    newfoo.add()
    print newfoo.x

    function.add_foo()
    print newfoo.x  

我只是想错了吗?这里显而易见的解决方案是向function.add_foo()添加一个参数,让我传入允许我使用它的newfoo实例。但是我发现这是一个非常麻烦的方法来处理一个对象,如果我调用它本质上需要普遍可访问每个模块和函数,因为它会在用户调整窗口大小时随时更改。

我也应该以完全不同的方式构建我的程序。

0 个答案:

没有答案