抽象鸡类 abstract(抽象) base(基础) class(类型)
# -->
''' class interface 接口:
建立关联的桥梁,
方便管理代码
(python中没有接口语法) 接口类:
用来定义功能的类
为继承它的子类提供功能
该类的功能法方法一般不需要有实现体
实现体有继承它的子类实现 print(len('123'))
# 面向过程
# 知道操作的功能,但不明确操作的具体对象 print('123'.__len__())
# 面向对象
# 清晰知道操作对象,但不明确具体的操作方法 '''
# -- ( 抽象接口 ) -------------------------------------------------------------------------------------------
# -- ( 案例说明 ) # class 宠物接口:
# def 关怀主人(self):pass # class 看门接口:
# def 看门(self): pass # class 狗(宠物接口,看门接口):
# 类狗拥有(宠物,看门)的父类,也就可以拥有(关怀主人,看门)的方法 # def 叫(self):pass 叫的功能
# def 吃(self):pass 吃的功能
# def 睡(self):pass 睡的功能 # class 猫(宠物接口,看门接口):猫同上
# def 叫(self):pass
# def 吃(self):pass
# def 睡(self):pass # -- ( 抽象 ) ------------------------------------------------------------------------------------------- # -- ( 抽象父类:拥有抽象方法 ( 子类共有的方法,但是父类不能有具体的实现体 ) 的父类 )
# -- ( 抽象方法:方法名是具体的,但是实现体是抽象的,在子类中重新具象化 )
# -- ( python 中借助abc来实现抽象父类 import abc ) # -- ( 实现抽象语法 ) -------------------------------------------------------------------------------------------
# -- ( 抽象基类 模块:abstract(抽象) base(基础) class(类型) ) ------------------------------------------------------------------------------------------- # import abc
# class ClsName(metaclass=abc.ABCMeta):
# @abc.abstractmethod # -- ( 案例 ) -------------------------------------------------------------------------------------------
# -- ( 元类:meta class ) ------------------------------------------------------------------------------------------- import abc
class Canine(metaclass=abc.ABCMeta): # 犬科 # 抽取 狗和狼 的共性到父类 犬科
def __init__(self, name):
self.name = name def run(self):
print(self.name + 'running')
def eat(self):
print(self.name + 'eating')
def sleep(self):
print(self.name + 'sleeping') # 抽象父类中的抽象方法,继承它的子类中 必须 有自己的实现体
@abc.abstractmethod # 子类必须重写此方法
def howl(self):
# print(self.name)
pass class Dog(Canine): def watchdoor(self):
print('wtachdoor')
def howl(self):
print('Howwwwwwwwwwwww') class Wolf(Canine): def hunter(self):
print('wtachdoor')
def howl(self):
print('oooooooooooooo')
抽象鸡类 abstract(抽象) base(基础) class(类型)的更多相关文章
- python 用abc模块构建抽象基类Abstract Base Classes
见代码: #!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2018/08/01 16:58 from abc import ABCMet ...
- guxh的python笔记七:抽象基类
1,鸭子类型和白鹅类型 1.1,白鹅类型 白鹅类型对接口有明确定义,比如不可变序列(Sequence),需要实现__contains__,__iter__,__len__,__getitem__,__ ...
- Python抽象基类:ABC谢谢你,因为有你,温暖了四季!
Python抽象基类:ABC谢谢你,因为有你,温暖了四季! Python抽象基类:ABC谢谢你,因为有你,温暖了四季! 实例方法.类方法和静态方法 抽象类 具名元组 参考资料 最近阅读了<Pyt ...
- 流畅python学习笔记:第十一章:抽象基类
__getitem__实现可迭代对象.要将一个对象变成一个可迭代的对象,通常都要实现__iter__.但是如果没有__iter__的话,实现了__getitem__也可以实现迭代.我们还是用第一章扑克 ...
- 4.6 C++抽象基类和纯虚成员函数
参考:http://www.weixueyuan.net/view/6376.html 总结: 在C++中,可以通过抽象基类来实现公共接口 纯虚成员函数没有函数体,只有函数声明,在纯虚函数声明结尾加上 ...
- 【Python】【元编程】【从协议到抽象基类】
"""class Vector2d: typecode = 'd' def __init__(self,x,y): self.__x = float(x) self.__ ...
- OOP2(虚函数/抽象基类/访问控制与继承)
通常情况下,如果我们不适用某个函数,则无需为该函数提供定义.但我们必须为每个虚函数都提供定义而不管它是否被用到了,这因为连编译器也无法确定到底会适用哪个虚函数 对虚函数的调用可能在运行时才被解析: 当 ...
- 流畅的python学习笔记:第十一章:抽象基类
__getitem__实现可迭代对象.要将一个对象变成一个可迭代的对象,通常都要实现__iter__.但是如果没有__iter__的话,实现了__getitem__也可以实现迭代.我们还是用第一章扑克 ...
- Djiango-建立模型抽象基类
创建一个抽象模型基类 ‘ 然后 ’base_model.py from django.db import models from datetime import date class BaseMode ...
随机推荐
- 空list赋值
list=[] i =0 list[i] =1 Traceback (most recent call last): File "D:\ProgramData\Anaconda3\lib\s ...
- exe所在路径
procedure TForm1.btn1Click(Sender: TObject); begin //完整路径 E:\UsrSoft\Desktop\FileNameDemo\Project1.e ...
- java Comparable and Comparator
1.Comparable简介 此接口对实现它的每个类的对象强加一个总排序.这种排序被称为类的自然排序,类的compareTo方法被称为其自然比较方法.可以通过 Collections.sort(和Ar ...
- python 几分钟前,几小时前,几天前转为时间戳
一开始我是这么做的 import time import datetime def conv_time(t): min = re.findall('\d+', t)[0] if u'分钟' in t: ...
- 转载:dos批处理中路径获取
在DOS的批处理中,有时候需要知道当前的路径. 在DOS中,有两个环境变量可以跟当前路径有关,一个是%cd%, 一个是%~dp0. 这两个变量的用法和代表的内容是不同的. 1. %cd% ...
- 基于MAVEN使用IDEA创建dubbo入门项目图文教程
花了很长时间没有找到一个很详细的图文教程来学习dubbo入门框架,故记录下来. 一: 项目工程目录 简单介绍项目目录结构: 二: 创建父工程 具体操作步骤: 1,打开IDEA,按下面步骤来 File- ...
- Lambda为什么又称为匿名函数
用法: 有的类,里面只有一个方法,几行代码,只使用一次,以后再不会用到这个类,那就不值当的单独创建一个类,此时使用匿名内部类 一.传统方式 1.接口 2.接口实现类 创建一个类,这个类可能被多次使用, ...
- ES(Elasticsearch)
基本概念 Elasticsearch是一个实时分布式搜索和分析引擎 支持: 全文搜索 结构化搜索 分析 可以这样进行描述: 分布式的实时文件存储,每个字段都被索引并可被搜索 分布式的实时分析搜索引擎 ...
- 【转载】curl 模拟 GET\POST 请求,curl查看响应头 以及 curl post 上传文件
补充说明:curl查看响应头 curl -I "http://www.baidu.com"HTTP/1.1 200 OK #HTTP协议 HTTP 返回码Server: Tengi ...
- python之路-python2.x与python3.x区别
Python崇尚优美.清晰.简单,是一个优秀并广泛使用的语言. Python2.x 与 Python3.x的区别: python2.x:源码混乱,重复代码较多,冗余. python3.x:源码规范,崇 ...