• python 类继承


    创建一个类(类定义):
    
    # !/usr/bin/env python
    # -*- coding: utf-8 -*-
    class AddrBookEntry(object): ##类定义
        def __init__(self,nm,ph): ##定义构造器
            self.name=nm
            self.phone=ph
            print '----------'
            print name,phone
    a=AddrBookEntry('aaa','bbb')
    print a.phone
    
    
    在AddrBookEntry 类的定义中,定义了两个方法:
    
    __init__()和 updatePhone()。
    
    __init__() 在实例化时被调用, AddrBookEntry()被调用时。
    
    
    你可以认为实例化是对__init__()的一种隐式调用,
    
    因为传给  AddrBookEntry()的参数完全与__init__()接收到的参数是一样的(除了 self,
    它是自动传递的)。
    
    回忆一下,当方法在实例中被调用时,self(实例对象)参数自动由解释器传递,
    
    所以在上面的__init__()中,需要的参数是nm和ph,
    
    
    创建实例(实例化):
    
    创建实例(实例化)
    >>> john = AddrBookEntry('John Doe', '408-555-1212') #为 John Doe 创建实例
    >>> jane = AddrBookEntry('Jane Doe', '650-555-1212') #为 Jane Doe 创建实例
    
    这就是实例化调用,它会自动调用__init__(). self把实例对象自动传入__init__().
    
    你可以在脑子里吧方法中的self用实例名替换掉。
    
    一旦实例被创建后,
    
     
     创建子类:
     
     靠继承来进行子类话是创建和定制新类类型的一种方式,新的类将保持已存在类所有的特性。
     
     
     而不会改动原来类的定义(指对新类的改动不会影响到原来的类)
     
     对于新的类类型来说,这个新的子类可以定制只属于它的特定功能
     
     
     
     # !/usr/bin/env python
    # -*- coding: utf-8 -*-
    class AddrBookEntry(object): ##类定义
        # def __init__(self,nm,ph): ##定义构造器
        #     self.name=nm
        #     self.phone=ph
        def updatePhone(self, newph):  # 定义方法
            self.phone = newph +str(100)
            print 'Updated phone# for:', self.phone
    class EmplAddrBookEntry(AddrBookEntry):
        def __init__(self):
             pass
    a=EmplAddrBookEntry()
    print a
    print type(a)
    print a.updatePhone('llll')
    
    
     C:Python27python.exe C:/Users/TLCB/PycharmProjects/untitled/mycompany/eee/a20.py
    <__main__.EmplAddrBookEntry object at 0x025F7370>
    <class '__main__.EmplAddrBookEntry'>
    Updated phone# for: llll100
    None
    
    Process finished with exit code 0
    
    现在我们创建了第一个子类,EmplAddrBookEntry。
    
    Python中,当一个类被派生出来,子类继承了基类的属性。
    
    如果需要,每个子类最好定义它自己的构造器,不然,基类的构造器会被调用。
    
    然而,如果子类重写基类的构造器,基类的构造器就不会被自动调用了。

  • 相关阅读:
    匹配session
    Jdk1.8+Eclipse+MySql+Tomcat开发Java应用的环境搭建
    MySQL忘记密码怎么办
    MyBatis框架Maven资源
    MyBatis核心配置文件模版
    MyBatis执行过程显示SQL语句的log4j配置
    MyBatis实体类映射文件模板
    Mybatis 学习-4
    Spring Boot + Swagger
    Spring Boot + Swagger
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13349217.html
Copyright © 2020-2023  润新知