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

猜你喜欢

转载自blog.csdn.net/jasonmes/article/details/80620275
今日推荐