zoukankan      html  css  js  c++  java
  • python类的重写和私有变量

    1.类的私有变量:

    class A(object):
    _name='ling'
    __sex='F'
    def hello(self):
    print(self._name)


    通过在属性变量名前加上双下划线定义属性为私有属性;
    1._XX以单下划线开头的表示的是protected类型的变量,
    即保护类型只能允许其本身与子类进行访问。
    若内部变量标示,如:当使用"from M import"时,
    不会将以一个下划线开头的对象引入;

    2.__XX双下划线的表示的是私有类型的变量。只能允许
    这个类本身进行访问了,连子类也不可以用于命名
    一个类属性(类变量),调用时名字被改变

    3.__XX__定义的是特列方法.


    python内置类属性:
    __dict__:类的属性(包含一个字典,由类的数据属性组成)
    __doc__:类的文档字符串

    2.类的重写

    class parent(object):
        name = 'parent'
        sex = 'F'
        coller = 'yellow'
        language = 'chinese'
        def __init__(self):
            print 'my name is {0}'.format(self.name)
        def get_sex(self):
            return self.name
    a = parent()
    a.get_sex()
    print '#'*15
     
    class child(object):
        name = 'child'
        coller = 'yellow'
        def __init__(self):
            print 'my name is {0}'.format(self.name)
        def get_coller(self):
            return self.coller
    b = child()
    print b.get_coller()
    print '#'*15
     
    class grandson(parent,child):
        name = 'grandson'
        def __init__(self):
            print 'my name is {0}'.format(self.name)
        def get_coller(self):
            return self.coller
        def get_language(self):
            return self.language
    #类的重写,只需要重新定义变量,直接打印
        def get_name(self):
            print 'my name is xiaoming'
    c = grandson()
    print c.get_coller()
    print c.get_language()
    c.get_name()
     
    tips:
    __init__ 是每个类的默认方法,如果子类想继承父类的__init__ 方法,需要用supper(子类,self)。子类把父类方法重写的时候,会默认忽略父类中的 return
    格式:子类想继承__init__
    supper(子类名称,self).__init__(有参数就跟参数)
    print '$$$$$$$ '   //使用supper函数,会忽略父类中的return,直接执行子类中 
                                  supper下的一些方法逻辑,所以直接用print 打出来
     
    格式: 子类想继承父类中的其他方法
    supper(子类名称,self).父类中的方法    //没参数就跟父类中的方法名
    print '#######'     // 使用supper函数,会忽略父类中的return
  • 相关阅读:
    Swift开发--Storyboard的使用教程
    HDU 2188-悼念512汶川大地震遇难同胞――选拔志愿者(巴什博奕)
    编译iOS使用的.a库文件
    springMVC3学习(十)--注解式控制器
    oracle RANK() dense_rank()
    sum(),max(),avg(),RATIO_TO_REPORT()--分组统计
    cume_dist(),允许并列名次、复制名次自动空缺,取并列后较大名次,结果如22355778……
    cume_dist(),名次分析——-最大排名/总个数
    rank(),允许并列名次、复制名次自动空缺,结果如12245558……
    ROW_NUMBER(),不允许并列名次、相同值名次不重复,结果如123456……
  • 原文地址:https://www.cnblogs.com/awenxianliao/p/7802181.html
Copyright © 2011-2022 走看看