我有一个对象Clock = pygame.time.Clock()
。我想在模块中使用它,以便每当导入模块时,模块就使用程序中创建的对象。我该怎么办?
答案 0 :(得分:1)
您可以做的是创建一个另一个模块,该模块全局定义Clock,并将其导入到程序和模块中。我前段时间尝试过,但这很尴尬,并会导致各种错误。
我尝试在Importing variable names into class namespace和Reuse 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()
根据大小写,您还可以具有类/模块范围的变量,而无需创建实际的对象。