博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
类的继承的应用场景
阅读量:2392 次
发布时间:2019-05-10

本文共 2407 字,大约阅读时间需要 8 分钟。

(1)常规创建一个类方法如下:

class Person(object):    def __init__(self, name, gender):        self.name = name        self.gender = genderp = Person('Alien', 'Male')print(p.name)print(p.gender)

  • Alien
  • Male

(2)但有时候,我们希望创建的是基类,希望其他类来继承的。如果这个基类有4个属性,但只有2个属性是固定不变的,为了方便其他类去继承,如何编写某个类呢?

class Person(object):    country = 'china'                            #写在__init__外面,实例化类时可以不用定义属性,这个是默认值    work = ''                                    # 默认值为 空    def __init__(self, name, gender):        self.name = name        self.gender = genderp = Person('Alien', 'Male')print(p.name)print(p.gender)print('='*25)print(p.country)print(p.work)print('='*25)
  • Alien
  • Male
  • =========================
  • china
  • =========================

(3)新建的类如果继承基类,那么新类里面也会包含所有基类的属性

class Person(object):    country = 'china'    work = ''    def __init__(self, name, gender):        self.name = name        self.gender = genderclass Tester(Person):                    #新类,继承了基类里面所有的属性    def print_info(self):        print('hello')t = Tester('Alien', 'Male')print(t.name)print(t.gender)print('='*20)print(t.country)print(t.work)print('='*20)
  • Alien
  • Male
  • =========================
  • china
  • =========================

(4)在新建的类里面,重新定义继承来自基类里面的属性

class Person(object):    country = 'china'    work = ''    def __init__(self, name, gender):        self.name = name        self.gender = genderclass Tester(Person):    country = 'chinese'            # 重新定义了属性    work = 'tester'                # 重新定义了属性    def print_info(self):        print('hello')t = Tester('Alien', 'Male')print(t.name)print(t.gender)print('='*20)print(t.country)print(t.work)print('='*20)
  • Alien
  • Male
  • =========================
  • chinese
  • tester
  • =========================

(5)如果继承了基类的属性是4个,但是新类需要的属性是5个,怎么办?

class Person(object):    country = 'china'    work = ''    def __init__(self, name, gender):        self.name = name        self.gender = genderclass Tester(Person):    country = 'chinese'    work = 'tester'    def __init__(self, name, gender, course):                # 添加所有属性,在基类属性基础上,增加course        super(Tester, self).__init__(name, gender)           # 调用父类的__init__方法,定义基类属性        self.course = course                                 # 单独定义添加的属性t = Tester('Alien', 'Male', 'Business & English')            print(t.name)print(t.gender)print('='*20)print(t.country)print(t.work)print(t.course)print('='*20)
  • Alien
  • Male
  • ====================
  • chinese
  • tester
  • Business & English
  • ====================

转载地址:http://gxeab.baihongyu.com/

你可能感兴趣的文章
树莓派安装中文输入法
查看>>
树莓派(raspberry pi)播发flash 远程登录 视频播放
查看>>
Linux 安装与配置服务器版jre7
查看>>
Perform Two Phase Commits in MongoDB
查看>>
java.rmi.ConnectException: Connection refused to host: 127.0.0.1
查看>>
数据库服务器 Cloudscape
查看>>
JAVA中使用Schema校验XML
查看>>
使用Jakarta-ORO库的几个例子
查看>>
使用BlazeDS实现Java和Flex通信
查看>>
使用 Apache MINA 开发高性能网络应用程序
查看>>
五分钟学会使用spring-data-cassandra快速实现数据的访问
查看>>
Build self-healing distributed systems with Spring Cloud
查看>>
如何利用Spring Cloud构建起自我修复型分布式系统
查看>>
Java代码实现设置系统时间
查看>>
java -D参数简化加入多个jar
查看>>
用Erlang开发的文档数据库系统CouchDB
查看>>
Apache Commons工具集简介
查看>>
Apache Cayenne—辣椒你吃了吗?
查看>>
云应用开发工具:Spring Cloud 1.0 正式发布
查看>>
[转]在VC中使用智能指针操作Excel
查看>>