python的静态变量和静态方法

一、静态变量和静态方法

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

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

 

二、静态变量示例

class StaticMenthod: count = 0          #静态变量,不需要显示的声明 
def __init__(self):     
   StaticMenthod.count += 1 
def __del__(self):     
   StaticMenthod.count -= 1 
   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!") StaticFunc.static_func() sFunc = StaticFunc() sFunc.static_func() print(StaticFunc.str)

 

运行结果如下:

 

在这里插入图片描述

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

 

原文链接:https://blog.csdn.net/toby54king/article/details/89315313

 

Python----静态变量

首先,Python语言并不支持静态变量。因为Python是动态语言,不存在完全静态的变量。 

Python中,静态成员变量称为类变量,非静态成员变量称为实例变量

 

理解下面的代码,分析为什么结果不同

class Jingtai(object):

    Count = 0

 

Ja1 = Jingtai()

Ja2 = Jingtai()

Ja2.Count = 1

print(Ja2.Count,Ja1.Count)

#结果:1,0

 

看明白了吗?class Jingtai(object)的类变量Count的值并没有被Ja2.Count = 1这一行代码改变,类变量Count依然是0,而对象Ja2继承类的变量Count创建了一个新的Count,然后赋值为1. 

所以这里的类变量就是个静态变量。 

那么能不能改变类变量的值呢?

 

可以通过类名来改变类变量的值吗?

class Lei(object):    Count = 0

AB1 = Lei()

AB2 = Lei()

Lei.Count = 100 print(AB1.Count,AB2.Count)# 结果:100 100。

 

使用getter和setter

 

class Lei(object):

    Count = 0

 

    def get_count(self):

        return Lei.Count

 

    def set_count(self,item):

        Lei.Count = item

AB1 = Lei()

AB2 = Lei()

AB1.set_count(9)

print(AB1.get_count(),AB2.get_count())

#结果:9 9

 

原文链接:https://blog.csdn.net/Jasonmes/article/details/80620275

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值