41.题目:模仿静态变量的用法。
python中是不支持静态变量的,所以可以通过以下的方法来实现静态变量的功能:
代码1:
class CTest(object):#python静态变量实现方法i__init=Nonedef __new__(cls,value):if cls.i__init is None:cls.i__init=object.__new__(cls)cls.i__init.value=valuereturn cls.i__initif __name__ == '__main__':flag1 = CTest(True)flag2 = CTest(False)print (flag1.value)print (flag2.value)
输出:
代码2:
def varfunc():var = 0print ('var = %d' % var)var += 1
if __name__ == '__main__':for i in range(3):varfunc()# 类的属性
# 作为类的一个属性吧
class Static:StaticVar = 5def varfunc(self):self.StaticVar += 1print (self.StaticVar)print (Static.StaticVar)
a = Static()
for i in range(3):a.varfunc()
输出:
42.题目:学习使用auto定义变量的用法。
程序分析:没有auto关键字,使用变量作用域来举例吧。
num = 2
def autofunc():num = 1print ('internal block num = %d' % num)num += 1
for i in range(3):print ('The num = %d' % num)num += 1autofunc()
输出: