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
。这就是它的用途。不要使用全局变量。
所以我终于很好地设置了我的基础 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
。这就是它的用途。不要使用全局变量。