python 之浅谈接口的定义和抽象类以及抽象方法

#_*_ coding:utf-8 _*_
#知识点:接口的定义和抽象类以及抽象方法

‘‘‘
1、抽象类式啥?
抽象类加上抽象方法就等于接口

2、接口的定义
含义1、别人给你暴露一个URL,然后调用这个URL
含义2、定义一个规范,不写具体实现,按照这个规范去实现相关功能,抽象类就是属于这种
‘‘‘

from abc import  ABCMeta, abstractmethod

#定义一个抽象类
class Alert:
    __metaclass__ = ABCMeta
    @abstractmethod
    def Send(self):pass #抽象方法

class Foo(Alert): #继承抽象类(或者说继承接口),就得按照抽象类的规范
    def __init__(self):
        print ‘__init__‘

    def Send(self): #抽象类里有send方法,所以,在这里也必须要有send方法
        print ‘send.Weixin‘

f = Foo()
f.Send()
时间: 2024-12-30 03:55:43

python 之浅谈接口的定义和抽象类以及抽象方法的相关文章

【python】浅谈包

python中的包可以理解为模块的集合.每个包也既可以为单包也可以有多个小包组成. Python中的package定义很简单,其层次结构与目录的层次结构相同,但是每个package必须包含一个__init__.py的文件,__init__.py可以为空文件,只要它存在,就表明此目录应被作为一个package处理. 整个包的目录结构如下: package/  ##包的目录 __init__.py ##包含的__init__.py文件 add_sub/    ##小包目录 __init__.py #

【python】浅谈for...else...语句

for循环可以和 else 子句同时使用(for...else).当迭代完for循环完整个列表失败后,会执行else语句.但循环中被 break 终止的情况下不会执行.如下例子所示: for i in range(0,10):#for循环整个迭代不符合条件 if i > 10: break else: print "hello world"结果输入出hello world for i in range(0,10): if i > 5:#for循环会中途被break终止,程序

【python】浅谈enumerate 函数

enumerate 函数用于遍历序列中的元素以及它们的坐标: >>> for i,j in enumerate(('a','b','c')):  print i,j 0 a 1 b 2 c >>> for i,j in enumerate([1,2,3]):  print i,j 0 1 1 2 2 3 >>> for i,j in enumerate({'a':1,'b':2}):  print i,j 0 a 1 b >>> fo

《浅谈——接口》

经过上周的学习,让我对JAVA中的接口有了初步了解.下面就把我学到关于接口的一些写出来. 我们需要学习接口的用法就需要先对抽象类有所了解,那么什么是抽象类呢?其实抽象类与普通类最大的区别就是:抽象类只可以声明定义,但是不可以对抽象类实例化:而对于普通类来说,我们都知道,它是可以实例化的,也就是可以生成一个对象来使用.而抽象类我们则需要用abstract关键字来修饰.同时,抽象方法是没有方法主体的,换句话说就是由abstract修饰的方法只有方法的声明,没有方法的实现.如: /** * 普通类 *

Python实例浅谈之五Python守护进程和脚本单例运行

一.简介 守护进程最重要的特性是后台运行:它必须与其运行前的环境隔离开来,这些环境包括未关闭的文件描述符.控制终端.会话和进程组.工作目录以及文件创建掩码等:它可以在系统启动时从启动脚本/etc/rc.d中启动,可以由inetd守护进程启动,也可以有作业规划进程crond启动,还可以由用户终端(通常是shell)执行. Python有时需要保证只运行一个脚本实例,以避免数据的冲突. 二.Python守护进程 1.函数实现 #!/usr/bin/env python #coding: utf-8

浅谈接口、抽象类、抽象方法和虚方法的区别

C#抽象类和接口孩子间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进行抽象类定义时对于抽象类和接口的选择显得比较随意.其实,两者之间还是有很大区别的. 首先说一下接口与抽象类的异同: 相同点: 1.他们都不能实例化自己,也就是说都是用来被继承的. 2.抽象类中的抽象方法和接口方法一样,都不能有方法体 不同点: 1.抽象类里可以有字段,接口中不能有字段. 2.抽象类中的普通方法可以有方法体,而接口方法没有方法体. 3.接口中的方法不能有访问修饰符,抽象类中的抽象方

浅谈 接口

接口: 先看下面一段话: 如果,你即将准备开始编程,就是那种 感觉需要很多很多类,而其中有些类,你已经提前知道需要哪些共同的功能.怎么办?当然首先想到,提前给他们规定好一种模式,规定他们是什么样的方法,有返回值,还是无返回值,返回啥种类型,等等的规定. 接口,就是可以帮助你的.接口,只是一种规范,一种约束. 概念:接口,是把方法都组合起来,以封装特定功能的集合. 注意:  1.一旦类实现了接口,类就可以支持接口所指定的所有属性和成员. 2.声明接口在语法上与声明抽象类完全相同,但是不允许接口中有

Python实例浅谈之三Python与C/C++相互调用

一.问题 Python模块和C/C++的动态库间相互调用在实际的应用中会有所涉及,在此作一总结. 二.Python调用C/C++ 1.Python调用C动态链接库 Python调用C库比较简单,不经过任何封装打包成so,再使用python的ctypes调用即可. (1)C语言文件:pycall.c /***gcc -o libpycall.so -shared -fPIC pycall.c*/ #include <stdio.h> #include <stdlib.h> int f

【python】浅谈模块

定义: 模块:用来从逻辑上组织python代码(变量,函数,类,逻辑),本质就是py文件. 导入方法: import module_name import module_name,module_name2 from module_name import *[不推荐使用,因为可能会与其他模块有冲突] from module_name import m1,m2,m3[推荐使用] from module_name import logger as logger_paul[推荐使用] 导入模块本质: 本