python实现类似C语言的局部变量static

转载自:https://blog.csdn.net/QJYWYGQJYWYG/article/details/54175157

1、静态变量和静态方法都属于类的静态成员,它们与普通的成员变量和成员方法不同,静态变量和静态方法只属于定义它们的类,而不属于某一个对象。

2、静态变量和静态方法都可以通过类名和对象进行访问。

二、静态变量示例

class StaticMenthod:
count = 0 #静态变量,不需要显示的声明

def __init__(self):
    StaticMenthod.count += 1

def del(self):
StaticMenthod.count -= 1

  • 1
  • 2
  • 3
  • 4
  • 5

sMenthod = StaticMenthod() #创建对象实例

sMenthod.count += 1 #通过对象实例操作静态变量
print(“sMenthod:%d”%(sMenthod.count)) #通过对象实例调用静态变量
print(“StaticMenthod:%d”%(StaticMenthod.count)) #通过类名调用静态变量

运行结果如下:
在这里插入图片描述

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

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

2、静态方法示例

class StaticFunc:
str = “this is static variable!”

@staticmethod
def static_func():
    print("this is static function!")

  
  
  
  
  • 1
  • 2
  • 3

StaticFunc.static_func()

sFunc = StaticFunc() sFunc.static_func()

print(StaticFunc.str)

运行结果如下:
在这里插入图片描述

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

说明:如有错误,欢迎指正。。。

                                </div>
            <link href="https://csdnimg.cn/release/phoenix/mdeditor/markdown_views-e9f16cbbc2.css" rel="stylesheet">
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值