Python如何使用全局变量和DRY

Python How to use global verables and DRY

所以我终于很好地设置了我的基础 class 并准备好构建 class 进行测试。然而,当我开始构建这个时,我注意到我不得不重复自己很多,将所有内容都设置为 global

调用 start() 事件来设置一切 Update() 被调用每个滴答声(每秒 20 个滴答声)

有没有比这个更有效的使用global venerable的方法

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

替换全局变量

示例:

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

不要使用全局变量。你实际上根本没有使用 self 。将您所有的共享状态移动到 self。这就是它的用途。不要使用全局变量。