python类变量的分类和调用方式

#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 父类
class JustCounter:
    '''
    类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类型:私有变量、保护变量、公开变量的调用方式。
    私有变量:两个下划线开头,声明该属性为私有,不能在类的外部或子类中被使用或直接访问。在类内部的方法中使用时 self.__private
    保护变量:一个下划线开头,声明该属性为protected。即保护类型只能允许其本身与子类进行访问。在类内部的方法中使用时 self._private
    公开变量:
    '''
    __secretCount = 0  # 私有变量,只能在本类中调用self.__secretCount, 如果是其他地方调用:实例名._父类类名__secretCount
    # 保护变量 和 公开变量在类、子类、外部的调用方式相同。
    _protectCount = 0    # 保护变量
    publicCount = 0  # 公开变量
    def count(self):
        self.__secretCount += 1 # 在本类中调用私有变量
        self._protectCount += 2 # 在本类中调用保护变量
        self.publicCount += 3 # 在本类中调用公开变量
        print(self.__secretCount)
    def printout(self):
        print('私有变量:'+str(self.__secretCount))
        print('保护变量:'+str(self._protectCount))
        print('公开变量:'+str(self.publicCount))


# JustCounter的子类
class Child(JustCounter):
    def __init__(self):
        super().__init__()
    # 重写父类方法
    def count(self):
        self._JustCounter__secretCount += 10 # 在子类中调用私有变量
        self._protectCount += 20 # 在子类中调用保护变量
        self.publicCount += 30 # 在子类中调用公开变量

        
child = Child()
child.count()
child.printout()
# 在类外部调用私有变量
print(str(child._JustCounter__secretCount))
print(str(child._protectCount))
print(str(child.publicCount))

  

posted @ 2019-11-18 17:13  turbolxq  阅读(4819)  评论(0编辑  收藏  举报