zoukankan      html  css  js  c++  java
  • 继承

    13.11 继承
    
    继承描述了基类的属性如何"遗传"给派生类,一个子类可以继承它的基类的任何属性,不管是数据属性还是方法
    
    举个例子如下:P是一个没有属性的简单类。C从P继承而来(因此是它的子类),也没有属性:
    
    class P(object):  # parent class 父类
    
    # !/usr/bin/env python
    # -*- coding: utf-8 -*-
    class P(object):# parent class 父类
        pass
    class C(P):#child class 子类
        pass
    c = C() # instantiate child 实例化子类
    print c
    print type(c)
    
    
    C:Python27python.exe C:/Users/TLCB/PycharmProjects/untitled/eeeee/a5.py
    <__main__.C object at 0x024F7C30>
    <class '__main__.C'>
    
    # !/usr/bin/env python
    # -*- coding: utf-8 -*-
    class P(object):# parent class 父类
        pass
    class C(P):#child class 子类
        pass
    c = C() # instantiate child 实例化子类
    print c
    print type(c)
    print '--------------------'
    print c.__class__
    print C.__bases__ # child's parent class(es) 子类的父类
    
    
    # !/usr/bin/env python
    # -*- coding: utf-8 -*-
    class P(object):# parent class 父类
        'P class'
        def __init__(self,a):
            print a
    class C(P):#child class 子类
        pass
    c = C('yyy') # instantiate child 实例化子类
    
    
    现在所创建的P有文档字符串(__doc__)
    
    
    # !/usr/bin/env python
    # -*- coding: utf-8 -*-
    class P(object):# parent class 父类
        'P class'
        def __init__(self,a):
            print a
    class C(P):#child class 子类
        pass
    c = C('yyy') # instantiate child 实例化子类
    p=P(666)
    print p
    print p.__doc__
    print p.__class__  # class that created us 显示 p 所属的类名
    print P.__bases__   # parent's parent class(es) 父类的父类
    print P.__doc__
    
    C 没有声明__init__()方法,然而在类 C 的实例 c 被创建时,还是会有输出信息。原因在于 C 继
    承了 P 的__init__()。__bases__元组列出了其父类 P。需要注意的是文档字符串对类,函数/方法,
    还有模块来说都是唯一的,
    
    
    所以特殊属性__doc__不会从基类中继承过来。
    C:Python27python.exe C:/Users/TLCB/PycharmProjects/untitled/eeeee/a5.py
    555
    <class '__main__.C'>
    (<class '__main__.P'>,)
    None

  • 相关阅读:
    [原创]Office Word 2010如何使用printer drivers输出PostScript文件
    MATLAB启动时报错: pathdef.m not found 问题解决方法
    Ubuntu 下 Matlab R2010a 错误:`GLIBCXX_3.4.11' not found 的解决办法
    [转] 一阶导和二阶导的含义
    win7 搭建ftp 设置用户权限 远程访问设置
    Ubuntu 中软件的安装、卸载以及查看的方法总结
    64位ubuntu12.04 LTS安装oracle10g笔记
    如何在Ubuntu 12.04 LTS中使用低版本gcc/g++
    HTTP与HttpServlet
    EXP00091错误
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13349210.html
Copyright © 2011-2022 走看看