Python语法第10讲:面向对象之继承
来源:互联网 发布:实时数据库软件有哪些 编辑:程序博客网 时间:2024/06/06 17:13
继承指的是子类可以继承父类的资源,在Python中支持多继承,也就是说一个儿子可以有多个爸爸
1、继承
在Python中继承显得十分的简洁,如果一个类继承自另一个类,只需将父类放到小括号中添加到子类类名后面即可,多个父类用半角逗号隔开
#基类class Animal: def __init__(self, name): #构造器 self.name = name def eat(self): print("%s 吃东西" %self.name) def drink(self): print("%s 喝水" %self.name)#子类class Dog(Animal): #Dog类继承自Animal类,python支持多继承,多个父类用逗号隔开 def __init__(self, name): #构造器 super().__init__(name) #调用父类的构造器 def eat(self): #重写父类的eat方法 print("%s 啃骨头" %self.name)d = Dog("金毛")d.drink()d.eat()2、常用的函数
#常用的BIFprint(d.__dict__) #查看对象所拥有的属性result = issubclass(Dog, Animal) #判断一个类是否是另一个类的子类print(result)result = isinstance(d, Dog) #判断一个实例对象是否属于一个类print(result)result = hasattr(d, 'name') #判断一个实例对象中是否有某个属性print(result)result = getattr(d, "name", "访问的参数不存在") #获取实例对象的属性值,如果不存在就赋默认值print(result)setattr(d, "name", "一只流浪狗") #给实例对象的属性赋值print(getattr(d, "name"))#delattr(d, "name") #删除实例对象的属性3、常用的魔法方法
3.1、__new__()
作用是实例化对象时被回调的方法,优先级高于构造方法,__new__()方法要求返回一个对象的实例
#魔法方法:__new__()class CapStr(str): #继承自字符串类 def __new__(cls, something): #__new__()函数,当类被实例化时调用,优先于构造函数 something = something.upper() return str.__new__(cls, something)result = CapStr("i love u")print(result)3.2、__del__()
析构函数,和构造函数是对立的,也就是当对象被销毁时回调析构函数
#魔法方法:__del__()class life: def __init__(self): #构造函数 print("__init__") def __del__(self): #析构函数 print("__del__")l = life()del l3.3、__init()__
构造函数,一般用于初始化成员变量
阅读全文
0 0
- Python语法第10讲:面向对象之继承
- Python语法第9讲:面向对象
- python语法学习面向对象之继承
- python语法学习面向对象之继承
- Java基础第9讲--面向对象之继承
- Python面向对象之继承
- JavaScript高级程序设计之面向对象的程序设计之继承之组合继承第6.3.3讲笔记
- JavaScript高级程序设计之面向对象的程序设计之继承之原型式继承第6.3.4讲笔记
- JavaScript高级程序设计之面向对象的程序设计之继承之寄生式继承第6.3.5讲笔记
- JavaScript高级程序设计之面向对象的程序设计之继承之寄生组合式继承第6.3.6讲笔记
- JavaScript高级程序设计之面向对象的程序设计之继承之原型链 第6.3.1讲笔记
- JavaScript高级程序设计之面向对象的程序设计之继承之借用构造函数第6.3.2讲笔记
- 第五天-面向对象之继承
- 3、python面向对象之继承
- python面向对象(三)之继承
- python 面向对象 继承
- python 面向对象继承
- 第10章 面向对象的继承
- volatile 关键字
- C++例题分析2,复制构造函数
- jdbc Template 介绍和 spring 链接数据源的四种方式
- spring(基础19) 注解@Scope详解
- PowerDesigner中SQL文件、数据库表反向生成PDM
- Python语法第10讲:面向对象之继承
- Python学习中常常遇到的一些问题
- linux文件权限与分组
- 服务器内部转发和请求重定向的区别
- 获取请求主机的IP端口等信息
- Java 中缀转后缀
- 轮播图中带粘性效果的小点
- having子句的用法
- HiAR SDK入门之开启多图识别