python之路——24
复习
1.面向对象编程
思想:角色的抽象,创建类,实例化,操作实例
2.面向对象的关键字
1.类的静态属性,存储在类的命名空间
2.类名.方法(对象),对象.方法
3.对象可以使用静态变量;类不可以使用对象里的属性
3.组合
一个类的对象是另一个对象的属性
学习内容
1.继承
1.一个类可以被多个类继承
一个类可以继承多个父类(python独有)
2.python3 --新式类,没有继承父类默认继承object类
3.子类拥有init时,不需要调用父类;同样,拥有待调用方法,也就不需要调用父类
4.父类中没有的属性(方法),子类中出现,叫派生属性(派生属性)
5.继承——减少代码的重复
6.继承表示一种子类是父类的关系
7.新式类继承顺序:广度优先
print(类名.mro) # 显示类的调用顺序,只在新式类中存在
经典类采用深度优先
8.super的本质:根据调用者节点位置的广度优先顺序来的
代码区
1. 子类,父类调用关系
class Animal:
def __init__(self,animal):
self.animal = animal
print('in animal init')
self.func()
def eat(self):
print('eat something')
def drink(self):
print('drink water')
def func(self):
print('in animal func') class Dog(Animal):
def __init__(self,kind):
self.kind = kind
print('in dog init')
def guard(self):
print('guard home') class Bird(Animal):
def egg(self):
print('egg')
def func(self):
print('in bird func') a1 = Dog('teddy')
# print(Dog.animal)
a2 = Bird('bird')
2.
class Animal:
def __init__(self,age):
self.age = age
def eat(self):
print('eat something')
def drink(self):
print('drink water')
def func(self):
print('in animal func') class Dog(Animal):
def __init__(self,age,kind):
Animal.__init__(self,age)
#super().__init__(age) # 只在新式类中有,python3中所有类都是新式类
self.kind = kind
def guard(self):
print('guard home') class Bird(Animal):
def egg(self):
print('egg')
def func(self):
Animal.func(self)
print('in bird func') a2 = Bird(11)
# a2.func()
super(Bird,a2).func() # 调用了父类的func
python之路——24的更多相关文章
- 【python之路24】装饰器
1.装饰器的应用场景 通常IT公司的程序开发是分工的,例如某公司某个部门负责底层函数的开发,另一个部门利用其函数实现高级功能,那么如果负责底层开发的函数需要改动,一般来说不会直接在函数上进行修改,通常 ...
- Python之路【第十九篇】:爬虫
Python之路[第十九篇]:爬虫 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用 ...
- Python之路【第十八篇】:Web框架们
Python之路[第十八篇]:Web框架们 Python的WEB框架 Bottle Bottle是一个快速.简洁.轻量级的基于WSIG的微型Web框架,此框架只由一个 .py 文件,除了Pytho ...
- Python之路【第十七篇】:Django【进阶篇 】
Python之路[第十七篇]:Django[进阶篇 ] Model 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用 MySQLdb 来连接 ...
- Python之路【第十六篇】:Django【基础篇】
Python之路[第十六篇]:Django[基础篇] Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了O ...
- Python之路【第十五篇】:Web框架
Python之路[第十五篇]:Web框架 Web框架本质 众所周知,对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端. 1 2 3 4 5 6 ...
- Python之路【第九篇】:Python操作 RabbitMQ、Redis、Memcache、SQLAlchemy
Python之路[第九篇]:Python操作 RabbitMQ.Redis.Memcache.SQLAlchemy Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用 ...
- Python之路【第八篇】:堡垒机实例以及数据库操作
Python之路[第八篇]:堡垒机实例以及数据库操作 堡垒机前戏 开发堡垒机之前,先来学习Python的paramiko模块,该模块机遇SSH用于连接远程服务器并执行相关操作 SSHClient ...
- Python之路【第七篇】:线程、进程和协程
Python之路[第七篇]:线程.进程和协程 Python线程 Threading用于提供线程相关的操作,线程是应用程序中工作的最小单元. 1 2 3 4 5 6 7 8 9 10 11 12 1 ...
随机推荐
- 利用axure软件实现app中的轮播图功能
1.首先在axure软件中插入一张手机模型图片并调整为合适大小 2.在需要展示轮播图片位置拖入[动态面板]并且调整大小 拖入后双击动态面板,填入面板名称,并且添加面板状态(此处轮播图为三张,所以有三个 ...
- python第一条代码
#!usr/bin/env python #-*-coding:utf-8 -*- print("hello,world")
- js bind绑定事件
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 【Linux】comm指令
语法 comm [-123][--help][--version][第1个文件][第2个文件] 参数 -1 不显示只在第1个文件里出现过的列 -2 不显示只在第2个文件里出现过的列 -3 不显示只在第 ...
- Container 组件
Container 组件 padding: const EdgeInsets.fromLTRB(10, 0, 30, 0),//内边距 margin: const EdgeInsets ...
- python 三种 安装包的方法
1.pycharm安装第三方库 然后点+搜索库安装. 注意 : 有时候点+会出现下图提示:Nothing to show,这就需要在点加号前点一下绿色圈圈的conda标志. 点+号出现下图的内容才是正 ...
- Ubuntu使用总结二
Ubuntu使用 - 1.ubuntu怎么切换到root用户,切换到root账号方法 ubuntu怎么切换到root用户,我们都知道使用su root命令,去切换到root权限,此时会提示输入密码, ...
- mininet的学习之一
mininet命令 (1)--topo (2)--switch (3)--controller (4)--mac 内部交互命令 添加主机 添加链路 添加接口 添加IP 确定是否创建成功 用h1 pin ...
- Python基础:五、Python程序的编写方式
python程序有两种编写方式: 1. 进入cmd控制台(linux终端),输入python进入编辑模式,这时候我们可以直接编写python程序 2. 也可以在.py文件中编写python代码,通过p ...
- Linux第十一节课学习笔记
区域就是firewalld预先准备了几套防火墙策略集合(策略模板),用户可以根据生产场景的不同而选择合适的策略集合,从而实现防火墙策略之间的快速切换. RUNTIME模式:当前生效,重启失效:PERM ...