jquery教程

推荐列表 站点导航

当前位置:首页 > jquery > jquery教程 >

python3中的接口类是什么?怎么用?

来源:网络整理  作者:网友投稿  发布时间:2020-12-27 22:34
jquery中文网为您提供python3中的接口类是什么?怎么用?等资源,欢迎您收藏本站,我们将为您提供最新的python3中的接...

本篇文章要说的类很有意思,叫接口类,这个名字相信小伙伴们还是比较容易记住的。小编想通过接口类给大家带来有趣的操作,毕竟一直学函数和代码,确实是一件需要记忆让人疲惫的事情。希望下面小编带来的例子,能让大家在运行代码的过程中,找到学习接口类的快乐。


我们来看一段代码去了解为什么需要接口类

class Alipay:     def pay(self,money):         print('支付宝支付了') class Apppay:     def pay(self,money):         print('苹果支付了') class Weicht:     def pay(self,money):         print('微信支付了') def pay(payment,money):       # 支付函数,总体负责支付,对应支付的对象和要支付的金额     payment.pay(money) p=Alipay() pay(p,200)      #支付宝支付了


这段代码,实现了一个有趣的功能,就是通过一个总体的支付函数,实现了不同种类的支付方式,不同是支付方式作为对象,传入函数中

但是开发中容易出现一些问题,那就是类中的函数名不一致,就会导致调用的时候找不到类中对应方法,例题如下:

class Alipay:     def paying(self,money):    #这里类的方法可能由于程序员的疏忽,写的不是一致的pay,导致后面调用的时候找不到pay         print('支付宝支付了') class Apppay:     def pay(self,money):         print('苹果支付了') class Weicht:     def pay(self,money):         print('微信支付了') def pay(payment,money):       # 支付函数,总体负责支付,对应支付的对象和要支付的金额     payment.pay(money) p=Alipay()   #不报错 pay(p,200)      #调用执行就会报错,'Alipay' object has no attribute 'pay'


这时候怎么办呢?可以手动抛异常:NotImplementedError来解决开发中遇到的问题

class payment:     def pay(self):         raise NotImplementedError    #手动抛异常 class Alipay:     def paying(self, money):  # 这里类的方法不是一致的pay,导致后面调用的时候找不到pay         print('支付宝支付了') def pay(payment, money):  # 支付函数,总体负责支付,对应支付的对象和要支付的金额     payment.pay(money)   p = Alipay()  # 不报错 pay(p, 200)  #调用的时候才会报错  'Alipay' object has no attribute 'pay'


也可以借用abc模块来处理这种错误

from abc import abstractmethod, ABCMeta     #接口类中定义了一些接口名:Pay,且并未实现接口的功能,子类继承接口类,并且实现接口中的功能 class Payment(metaclass=ABCMeta):    #抽象出的共同功能Pay     @abstractmethod     def pay(self,money):pass    #这里面的pay 来源于下面类中的方法pay,意思把这个方法规范为统一的标准,另外建一个规范类Payment class Alipay(Payment):     def paying(self, money):    #这里出现paying和我们规范的pay不一样,那么在实例化 Alipay的时候就会报错         print('支付宝支付了') class Weicht(Payment):     def pay(self,money):         print('微信支付了') def pay(pay_obj,money):     pay_obj.pay(money) p=Alipay()   #实例化的时候就会报错  Can't instantiate abstract class Alipay with abstract methods pay 之前两个例子都是在执行的时候报错,这里不一样的是实例化就会知道是哪里发生错误了

总结:用abc模块装饰后,在实例化的时候就会报错,那么当我们代码很长的时候,就可以早一点预知错误,所以以后在接口类类似问题中用这个模块

接口继承实质上是要求“做出一个良好的抽象,这个抽象规定了一个兼容接口,使得外部调用者无需关心具体细节,

可一视同仁的处理实现了特定接口的所有对象”——这在程序设计上,叫做归一化。

以上就是python3接口类的一些好玩的例子,是不是觉得学python也是非常开心的事情呢~小编会不定期搜集有趣的例子分享给大家。

相关热词:

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!

本文地址: https://v30.fanwenzhu.com/jq/jc/9901.shtml

相关文章
最新文章
PHP识别相片是否是颠倒的 PHP识别相片是否是颠倒的

时间:2020-12-28

python编程有哪些ide python编程有哪些ide

时间:2020-12-28

python开发工程师是做什么 python开发工程师是做什么

时间:2020-12-28

php构造函数的作用 php构造函数的作用

时间:2020-12-28

php怎么跟数据库连接 php怎么跟数据库连接

时间:2020-12-28

php实现顺序线性表 php实现顺序线性表

时间:2020-12-28

Python多重继承中的菱形继 Python多重继承中的菱形继

时间:2020-12-28

php中break的作用 php中break的作用

时间:2020-12-28

Copyright © www.juheyunku.com      关于 | 合作 | 声明 | 联系 | 更新 | 地图 | Tags

python3中的接口类是什么?怎么用?

2020-12-27 编辑:网友投稿

本篇文章要说的类很有意思,叫接口类,这个名字相信小伙伴们还是比较容易记住的。小编想通过接口类给大家带来有趣的操作,毕竟一直学函数和代码,确实是一件需要记忆让人疲惫的事情。希望下面小编带来的例子,能让大家在运行代码的过程中,找到学习接口类的快乐。


我们来看一段代码去了解为什么需要接口类

class Alipay:     def pay(self,money):         print('支付宝支付了') class Apppay:     def pay(self,money):         print('苹果支付了') class Weicht:     def pay(self,money):         print('微信支付了') def pay(payment,money):       # 支付函数,总体负责支付,对应支付的对象和要支付的金额     payment.pay(money) p=Alipay() pay(p,200)      #支付宝支付了


这段代码,实现了一个有趣的功能,就是通过一个总体的支付函数,实现了不同种类的支付方式,不同是支付方式作为对象,传入函数中

但是开发中容易出现一些问题,那就是类中的函数名不一致,就会导致调用的时候找不到类中对应方法,例题如下:

class Alipay:     def paying(self,money):    #这里类的方法可能由于程序员的疏忽,写的不是一致的pay,导致后面调用的时候找不到pay         print('支付宝支付了') class Apppay:     def pay(self,money):         print('苹果支付了') class Weicht:     def pay(self,money):         print('微信支付了') def pay(payment,money):       # 支付函数,总体负责支付,对应支付的对象和要支付的金额     payment.pay(money) p=Alipay()   #不报错 pay(p,200)      #调用执行就会报错,'Alipay' object has no attribute 'pay'


这时候怎么办呢?可以手动抛异常:NotImplementedError来解决开发中遇到的问题

class payment:     def pay(self):         raise NotImplementedError    #手动抛异常 class Alipay:     def paying(self, money):  # 这里类的方法不是一致的pay,导致后面调用的时候找不到pay         print('支付宝支付了') def pay(payment, money):  # 支付函数,总体负责支付,对应支付的对象和要支付的金额     payment.pay(money)   p = Alipay()  # 不报错 pay(p, 200)  #调用的时候才会报错  'Alipay' object has no attribute 'pay'


也可以借用abc模块来处理这种错误

from abc import abstractmethod, ABCMeta     #接口类中定义了一些接口名:Pay,且并未实现接口的功能,子类继承接口类,并且实现接口中的功能 class Payment(metaclass=ABCMeta):    #抽象出的共同功能Pay     @abstractmethod     def pay(self,money):pass    #这里面的pay 来源于下面类中的方法pay,意思把这个方法规范为统一的标准,另外建一个规范类Payment class Alipay(Payment):     def paying(self, money):    #这里出现paying和我们规范的pay不一样,那么在实例化 Alipay的时候就会报错         print('支付宝支付了') class Weicht(Payment):     def pay(self,money):         print('微信支付了') def pay(pay_obj,money):     pay_obj.pay(money) p=Alipay()   #实例化的时候就会报错  Can't instantiate abstract class Alipay with abstract methods pay 之前两个例子都是在执行的时候报错,这里不一样的是实例化就会知道是哪里发生错误了

总结:用abc模块装饰后,在实例化的时候就会报错,那么当我们代码很长的时候,就可以早一点预知错误,所以以后在接口类类似问题中用这个模块

接口继承实质上是要求“做出一个良好的抽象,这个抽象规定了一个兼容接口,使得外部调用者无需关心具体细节,

可一视同仁的处理实现了特定接口的所有对象”——这在程序设计上,叫做归一化。

以上就是python3接口类的一些好玩的例子,是不是觉得学python也是非常开心的事情呢~小编会不定期搜集有趣的例子分享给大家。

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供学习参考!
本文地址为 https://v30.fanwenzhu.com/jq/jc/9901.shtml

相关文章

风云图片

推荐阅读

返回jquery教程频道首页