41 静态变量——类
python实现静态变量_python 静态变量-CSDN博客
一、静态变量和静态方法
1、静态变量和静态方法都属于类的静态成员,它们与普通的成员变量和成员方法不同,静态变量和静态方法只属于定义它们的类,而不属于某一个对象。
2、静态变量和静态方法都可以通过类名和对象进行访问。
二、静态方法
1、静态方法相关描述
1)、静态方法中不需要传入self参数,因此无法访问在静态方法中访问静态实例变量。
2)、静态方法中不可以直接访问类的静态变量,但可以通过类名引用静态变量。
3)、可以通过装饰符定义静态变量。
#!/usr/bin/python
# -*- coding: UTF-8 -*-
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) #输出结果为5
a = Static() #输出结果为6 7 8
for i in range(3):
a.varfunc()
var = 0
var = 0
var = 0
5
6
7
8
42学习使用auto定义变量的用法
程序分析:没有auto关键字,使用变量作用域来举例吧。
num = 2 #for 循环中的num初始值
# 定义函数
def autofunc():
num = 1 # 函数内的num
print("internal block num = %d" % num) #内部模块变量 = 1
num += 1
# 循环定义好的函数
for i in range(3):
print("The num = %d" % num)
num += 1
autofunc()
The num = 2
internal block num = 1
The num = 3
internal block num = 1
The num = 4
internal block num = 1
43模仿静态变量(static)另一案例
程序分析:演示一个python作用域使用方法
#定义类
class Num:
nNum = 1
def inc(self):
self.nNum += 1
print("nNum = %d" % self.nNum)
if __name__ == "__main__":
nNum = 2
inst = Num() # 调用类
for i in range(3):
nNum += 1 # 针对数字 nNum = 2
print("The nNum = %d" % nNum) # 针对数字 nNum = 2
inst.inc() # 类的调用,针对数字 nNum =1
The nNum = 3
nNum = 2
The nNum = 4
nNum = 3
The nNum = 5
nNum = 4