当前位置: 首页 > news >正文

python类继承和类变量

Python一些类继承和实例变量的使用
定义基类

class APIException:code = 500msg = "Sorry, error"error_code = 999def __init__(self, msg=None):print("APIException init ...")def error_400(self):pass

复用基类的属性值

class ClientTypeError(APIException):code = 400# msg = "client is invalid" # 子类ClientTypeError默认的错误消息error_code = 1006client_error = ClientTypeError()
print(client_error.msg)  # Sorry, error

当我们需要随时修改子类错误时,需要修改基类的__init__函数

class APIException:code = 500msg = "Sorry, error"error_code = 999def __init__(self, msg=None):self.msg = msg # 重写基类修改类变量的值print("APIException init ...")def error_400(self):pass

子类自定义错误信息

class ClientTypeError(APIException):code = 400msg = "client is invalid"error_code = 1006client_error = ClientTypeError(msg="not found")
print(client_error.msg)
# APIException init ...
# not found

注:类变量和实例变量不是一个概念,类变量是所有类实例共同拥有的属性,当同一个类的实例修改了类变量的值,可能会给其他实例造成数据上的污染,如果想保证每一个实例都拥有自己的变量值,需要使用实例变量,也就在__init__函数中创建变量。

http://www.lryc.cn/news/392812.html

相关文章:

  • js 随机生成整数
  • 深入Django(七)
  • 【区分vue2和vue3下的element UI Steps 步骤条组件,分别详细介绍属性,事件,方法如何使用,并举例】
  • uni-app x 跨平台开发框架
  • YOLOv8模型调参---数据增强
  • 【Nginx】docker运行Nginx及配置
  • tensorflow和numpy的版本
  • 二维Gamma分布的激光点云去噪
  • 鸿蒙笔记导航栏,路由,还有axios
  • Spring 框架中都用到了哪些设计模式:单例模式、策略模式、代理模式
  • 阶段总结——基于深度学习的三叶青图像识别
  • 深度解析Java世界中的对象镜像:浅拷贝与深拷贝的奥秘与应用
  • Python | Leetcode Python题解之第218题天际线问题
  • 使用Spring Boot构建RESTful API
  • Spark快速大数据分析PDF下载读书分享推荐
  • Centos7离线安装mysql-5.7.44bundle包
  • ROS melodic版本卸载---Ubuntu18.04
  • Java面试之Java多线程常见面试题
  • Java [ 基础 ] Java面向对象编程 (OOP) ✨
  • 敏捷开发笔记(第9章节)--开放-封闭原则(OCP)
  • 苹果电脑清理app垃圾高效清理,无需专业知识
  • 【算法】(C语言):快速排序(递归)、归并排序(递归)、希尔排序
  • 模型驱动开发(Model-Driven Development,MDD):提高软件开发效率与一致性的利器
  • 记录discuz修改用户的主题出售价格
  • WGAN(Wassertein GAN)
  • Maven基本使用
  • 在Linux系统中配置GitHub的SSH公钥
  • 小酌消烦暑|人间正清欢
  • C语言结构体的相关知识
  • RabbitMQ入门教程(精细版二带图)