2022年 11月 4日

python 静态变量 静态方法 简介

目录

一、静态变量和静态方法

二、静态变量示例

三、静态方法


一、静态变量和静态方法

1、静态变量和静态方法都属于类的静态成员,它们与普通的成员变量和成员方法不同,静态变量和静态方法只属于定义它们的类,而不属于某一个对象。
2、静态变量和静态方法都可以通过类名和对象进行访问。

二、静态变量示例

  1. class StaticMenthod:
  2. count = 0 #静态变量,不需要显示的声明
  3. def __init__(self):
  4. StaticMenthod.count += 1
  5. def __del__(self):
  6. StaticMenthod.count -= 1
  7. sMenthod = StaticMenthod() #创建对象实例
  8. sMenthod.count += 1 #通过对象实例操作静态变量
  9. print(“sMenthod:%d”%(sMenthod.count)) #通过对象实例调用静态变量
  10. print(“StaticMenthod:%d”%(StaticMenthod.count)) #通过类名调用静态变量

运行结果如下:


通过上面的测试结果可以看出通过对象实例访问静态变量和通过类名访问静态变量的结果是不一样的,由此也证明了通过对象访问实例和通过类名访问实例是互相不干扰的。

三、静态方法

1、静态方法相关描述
1》、静态方法中不需要传入self参数,因此无法访问在静态方法中访问静态实例变量。
2》、静态方法中不可以直接访问类的静态变量,但可以通过类名引用静态变量。
3》、可以通过装饰符定义静态变量。

2、静态方法示例

  1. class StaticFunc:
  2. str = “this is static variable!”
  3. @staticmethod
  4. def static_func():
  5. print("this is static function!")
  6. StaticFunc.static_func()
  7. sFunc = StaticFunc() sFunc.static_func()
  8. print(StaticFunc.str)

运行结果如下:


通过结果分析可以知道:通过对象名调用静态方法和通过类名调用静态方法的结果是没有什么区别的。