我可以使用在模块程序中创建的对象吗?

时间:2018-08-11 09:36:52

标签: python object module pygame

我有一个对象Clock = pygame.time.Clock()。我想在模块中使用它,以便每当导入模块时,模块就使用程序中创建的对象。我该怎么办?

1 个答案:

答案 0 :(得分:1)

不,至少不能这样。

您可以做的是创建一个另一个模块,该模块全局定义Clock,并将其导入到程序和模块中。我前段时间尝试过,但这很尴尬,并会导致各种错误。

我尝试在Importing variable names into class namespaceReuse module with different scripts (code organization)上以不同的方式进行操作,但这是徒劳的。

通常的方法是使模块函数具有传递给它们的参数,这些参数包含设置模块所需的变量。有时候,将模块组织到类中是有道理的-在创建类对象时,将config / global变量设置为它们。

赞: module1.py

class funcs_that_use_clock:
    def __init__(self,clockconfig):
         self.clock=clockconfig

    def foo(self):
         print self.clock

然后yourprogram.py完成:

from module1 import funcs_that_use_clock as F

Clock = pygame.time.Clock()
myfuncs=F(Clock)
myfuncs.foo()

根据大小写,您还可以具有类/模块范围的变量,而无需创建实际的对象。