Python如何使用全局verables和DRY

2024-06-24 12:48:27 发布

您现在位置:Python中文网/ 问答频道 /正文

因此,我终于很好地设置了基类,并准备好构建一个要测试的类。然而,当我开始构建这个的时候,我注意到我不得不重复我自己的很多事情,把所有的东西都设置为全局的

调用start()事件来设置所有内容 Update()在每一个滴答声(每秒20个滴答声)调用一次

有没有比这更有效的方法来使用全球尊者呢

class BodyClass(BaseClass):
    def __init__(self, name):
        super().__init__(name)


    def Start(self):
        global i
        i = 0
        global d
        d = True
        global obj1
        obj1 = ChildClassA('Obj1')
        global obj2
        obj2 = ChildClassB('Obj2')
        global obj3
        obj3 = ChildClassC('Obj3')
        global obj4
        obj4 = ChildClassB('Obj4')
        global obj5
        obj5 = ChildClassB('Obj5')
        global obj6
        obj6 = ChildClassB('Obj6')

    def Update(self):


        global i
        global d
        global obj1
        global obj2
        global obj3
        global obj4
        global obj5
        global obj6

        print ("TYPE:", obj3.CType())
        i = i+ 1
        time.sleep(0.05)
        print("i: ", i)
        if i >= 10:
            if d:
                print("UNLOADING")
                obj2.Unload()
                obj4.Unload()
                obj5.Unload()
                obj6.Unload()

                d=False

Tags: nameselfinitdefupdateglobalprintobj2
2条回答

替换全局变量

示例:

 global obj1;
 obj1 = ChildClassA('Obj1');  => self.obj1 = ChildClassA('Obj1');

不要使用全局变量。你真的一点都不使用自我。将所有共享状态移到self。这就是它的目的。不要使用全局变量

相关问题 更多 >