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