Python 约束

编程入门 行业动态 更新时间:2024-10-13 20:19:10

<a href=https://www.elefans.com/category/jswz/34/1770869.html style=Python 约束"/>

Python 约束

任务:要求其他接口必须继承User类,并且重写login()方法,后期各接口只调用login()方法来实现登录。

1、主动抛出错误

class User:"""必需重写login()方法"""def login(self):raise NotImplementedError('.login() must be overwrite')class WeChat(User):def __init__(self, name):self.name = name# 这里重写login方法,如果重写后期调用login方法是会抛出错误def login(self):print(self.name, '登陆成功')# 这里可以重写,也可以不用重写,没有对其进行约束def logout(self):print(self.name, '注销登录')obj = WeChat('李明')
obj.login()# 如果没有重写login方法就会调用父类的login方法,这时就会抛出错误,如下:
raise NotImplementedError('.login() must be overwirte')
NotImplementedError: .login() must be overwirte

2、使用抽象类和方法类进行约束

from abc import ABCMeta, abstractmethodclass user(metaclass=ABCMeta):  # 创建一个抽象类def logout(self):print('注销')# 抽象方法@abstractmethoddef login(self):print('登录')class WeChat(user):def __init__(self, name):self.name = name# 必须重写login方法,否则报错def login(self):print(self.name, '登录成功')def logout(self):print(self.name, '注销登录')obj = WeChat('lily')
obj.login()# 这是没有重写login方法的错误信息:
TypeError: Can't instantiate abstract class WeChat with abstract methods login

更多推荐

Python 约束

本文发布于:2023-07-28 20:00:43,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1295012.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:Python

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!