Python 类的约束
# 项目经理
class Base:
# 对子类进行了约束. 必须重写该方法
# 以后上班了. 拿到公司代码之后. 发现了notImplementedError 继承他 直接重写他
def login(self):
# 没有被实现错误
raise NotImplementedError("你要重写一下login这个方法. 否则报错!") # 抛异常 . class Member(Base):
def login(self):
print("我是普通人登录") class BaWu(Base):
def login(self):
print("吧务登录") class Houtai(Base):
def login(self): # 报错, 上层程序员写代码没有按照规范来
print("后台登录") # 整合这些个功能
def deng(obj):
obj.login() m = Member()
bw = BaWu()
ht = Houtai() deng(m)
deng(bw)
deng(ht) # 抽象类和抽象方法 -> java c#
# 抽象方法不需要给出具体的方法体. 抽象方法内只写一个pass就可以了
# 在一个类中如果有一个方法是抽象方法. 那么这个类一定是一个抽象类
# 抽象类中. 如果有抽象方法. 此时这个类不能创建对象
# 如果一个类中所有的方法都是抽象方法. 这个类可以被称为接口类 # 写一个抽象方法:导入一个模块
from abc import ABCMeta, abstractmethod # 此时抽象类不能创建对象
class Animal(metaclass=ABCMeta): # 写完这东西. 就是个抽象类
@abstractmethod # 抽象方法
def chi(self): pass # 吃应该只是一个抽象概念. 没办法完美的描述出来吃什么东西 # 抽象类中可以有正常的方法
def dong(self):
print("动物会动") # class Cat(Animal): # 此时猫里面也有一个抽象方法, 此时的猫是创建不了对象的
# pass class Cat(Animal):
def chi(self): # 重写父类中的抽象方法
print("猫喜欢吃鱼") a = Cat()
a.chi()
a.dong()
Python 类的约束的更多相关文章
- python学习笔记:第19天 类的约束、异常、MD5和logging
目录 一.类的约束 二.异常处理: 三.MD5加密 四.日志(logging模块) 一.类的约束 真正写写项目的代码时都是多人协作的,所以有些地方需要约束程序的结构.也就是说,在分配任务之前就应该把功 ...
- python基础学习笔记——类的约束
⾸先, 你要清楚. 约束是对类的约束. 用一个例子说话: 公司让小明给他们的网站完善一个支付功能,小明写了两个类,如下: class QQpay: def pay(self,money): print ...
- Python 入门 之 类的约束以及super()剖析
Python 入门 之 类的约束以及super()剖析 1.类的约束 第一版: class WechatPay: def pay(self): print("微信支付") clas ...
- Python面向对象之:三大特性:继承,封装,多态以及类的约束
前言: python面向对象的三大特性:继承,封装,多态. 1. 封装: 把很多数据封装到⼀个对象中. 把固定功能的代码封装到⼀个代码块, 函数, 对象, 打包成模块. 这都属于封装的思想. 具体的情 ...
- Python面向对象04 /封装、多态、鸭子类型、类的约束、super
Python面向对象04 /封装.多态.鸭子类型.类的约束.super 目录 Python面向对象04 /封装.多态.鸭子类型.类的约束.super 1. 封装 2. 多态 3. 鸭子类型 4. 类的 ...
- python 面向对象专题(四):封装、多态、鸭子类型、类的约束、super
https://www.cnblogs.com/liubing8/p/11321099.html 目录 Python面向对象04 /封装.多态.鸭子类型.类的约束.super 1. 封装 2. 多态 ...
- python之路--类的约束, 异常处理, MD5, 日志处理
一 . 类的约束 1. 写一个父类,父类中的某个方法要抛出一个异常 NotImplementedError class Base: # 对子类进行了约束. 必须重写该方法 # 以后上班了. 拿到公司代 ...
- 【Python&数据结构】 抽象数据类型 Python类机制和异常
这篇是<数据结构与算法Python语言描述>的笔记,但是大头在Python类机制和面向对象编程的说明上面.我也不知道该放什么分类了..总之之前也没怎么认真接触过基于类而不是独立函数的Pyt ...
- python类:属性
http://blog.csdn.net/pipisorry/article/details/50708616 Python 中的 property 属性 Python中有个很赞的概念,叫做prope ...
随机推荐
- Spring Boot 是什么?
Spring Boot 2.0 的推出又激起了一阵学习 Spring Boot 热,那么, Spring Boot 诞生的背景是什么?Spring 企业又是基于什么样的考虑创建 Spring Boot ...
- 借助python工具从word文件中抽取相关表的定义,最后组装建表语句-非常好
借助python工具从word文件中抽取表的定义,最后组装建表语句-非常好 --如有转载请以超链接的方式注明原文章出处,谢谢大家.请尊重每一位乐于分享的原创者 1.python脚本 ## -*- co ...
- Leetcode 131
class Solution { public: vector<vector<string>> partition(string s) { vector<string&g ...
- MI04 盘点单数据录入
*&---------------------------------------------------------------------* *& Report ZRHSSD002 ...
- laravel源码解析
本专栏系列文章已经收录到 GitBooklaravel源码解析 Laravel Passport——OAuth2 API 认证系统源码解析(下)laravel源码解析 Laravel Passport ...
- 一、J2EE
一.HTTP协议中的响应代码 响应代码从1xx--5xx一共有41中.常见的 404:表示访问的页面不存在.这表示一个浏览器的错误,就是服务端没有提供这个服务,你却去访问.这个锅要算在浏览器头上,而不 ...
- Qt 设置窗口居中显示和窗体大小
设置窗口居中显示 方法一:在窗口(QWidget类及派生类)的构造函数中添加如下代码: #include <QDesktopWidget> //....... QDesktopWidget ...
- nop 4.1 Widget 探究- 视图组件
1. 系统默认自带了一个NivoSlider 的Wdget. 在Nop.Web项目首页的HomePageTop里 这个写法是 ASP.NET Core MVC 中的新特性 视图组件,与局部视图相似,但 ...
- jq 如何获取多选框选中的值
jquery如何获取多选框选中的值,有两种方法 1.通过id获取是否选中(单个) 1)引入jquery文件 2)Html设计如下 <div> <span>运动类:</sp ...
- nodejs项目文件搭建环境
nodeJS,作为一门较为“新鲜的”的原因,近年来普遍受到一些前端想转为全栈的ITer青睐,在想用nodeJS配合数据库开发出一个小玩意的路上,萌新们第一步便要遇到就是环境的支持.node作为Java ...