Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >python 调用父类方法super()

python 调用父类方法super()

作者头像
用户5760343
发布于 2019-12-13 04:45:54
发布于 2019-12-13 04:45:54
2K00
代码可运行
举报
文章被收录于专栏:sktjsktj
运行总次数:0
代码可运行

为了调用父类(超类)的一个方法,可以使用 super() 函数,比如:

class A: def spam(self): print('A.spam')

class B(A): def spam(self): print('B.spam') super().spam() # Call parent spam() super() 函数的一个常见用法是在 init() 方法中确保父类被正确的初始化了:

class A: def init(self): self.x = 0

class B(A): def init(self): super().init() self.y = 1 super() 的另外一个常见用法出现在覆盖Python特殊方法的代码中,比如:

class Proxy: def init(self, obj): self._obj = obj

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# Delegate attribute lookup to internal obj
def __getattr__(self, name):
    return getattr(self._obj, name)

# Delegate attribute assignment
def __setattr__(self, name, value):
    if name.startswith('_'):
        super().__setattr__(name, value) # Call original __setattr__
    else:
        setattr(self._obj, name, value)
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
python 多重类继承__init__
项目中遇到多重类继承的问题,想调用父类构造函数中的内容,调试了一两个小时,遇到两个问题。
用户3578099
2019/08/15
1.2K0
Python面向对象的魔术方法
在Python中,所有以__双下划线包起来的方法,都统称为魔术方法。比如最常见的 __init__ 。
职场亮哥
2020/10/10
7640
Python Magic Method 与 Setup 方法:深入解析与应用
Python 中的魔法方法,也称为双下划线方法或特殊方法,格式为 “方法名”。这些方法无需主动调用,而是在特定场景下由 Python 解释器自动调用。魔法方法的作用是自定义类的行为,以便与内置操作符(例如 +、-、*、/、== 等)和函数(例如 len()、str() 等)交互。
井九
2024/10/12
910
Python 类与继承
self参数用于对当前类中实例的引用,必须作为该类中任何函数的第一个参数,但可以不必命名为 self
回天
2023/04/25
7360
Python 类与继承
Python中反射
运行时,区别于翻译时,指的是程序被加载到内存中执行的时候。 反射,reflection,指的是运行时获取类型定义信息。 一个对象能够在运行时,像照镜子一样,反射出其类型信息。简单说,在Python中,能够通过一个对象,找出其type、class、attribute或method的能力,称为反射或自省。 具有反射能力的函数有type(),isinstance(),callable().dir().getattr()等
用户7886150
2020/12/20
8790
关于python类中描述器-类型检查、延迟和代理
python学习深水区,仅供自己参考 # 类型检查的描述器 class Typed: #变量名称,期待的数据类型 def __init__(self, name, expected_type): self.name = name self.expected_type = expected_type #获取字典里的变量名称 def __get__(self, instance, cls): if instance is None:
python与大数据分析
2022/03/11
3490
进阶的运维开发(三)- 反射
反射就是通过字符串的形式,导入模块,通过字符串的形式,去模块寻找制定函数并执行。利用字符串的形式去对象(模块)中操作(查找/获取/删除/添加)成员,一种基于字符串的事件驱动。
奔跑的骆驼
2020/02/27
3460
python类之特殊属性和魔术方法
1 实现 StaticMethod 装饰器,实现staticmethod的部分功能
py3study
2020/01/06
1.8K0
Python指南:高级程序设计之面向对象程序设计进阶
本节中,我们将更深入地学习 Python 对面向对象的支持,学习很多可以减少必须编写的代码的总量、拓展程序的威力与功能的技术。下面以一个简单的类开始:
王强
2018/08/09
8890
Python3 | 练气期,面向对象、类魔术方法,类修饰器!
如果你接触过 Java、Golang 编程语言,那么你一定知道面向对象编程(OOP)的概念。面向对象编程(OOP)是相对于面向过程编程而言的,面向过程编程是一种以过程为中心的开发模式,而面向对象编程则是以对象为中心的开发模式。
全栈工程师修炼指南
2024/07/29
2040
Python3 | 练气期,面向对象、类魔术方法,类修饰器!
python 中__setattr__, __getattr__,__getattribute__, __call__使用方法
object._getattr_(self, name) 拦截点号运算。当对未定义的属性名称和实例进行点号运算时,就会用属性名作为字符串调用这个方法。如果继承树可以找到该属性,则不调用此方法 实例instance通过instance.name访问属性name,只有当属性name没有在实例的__dict__或它构造类的__dict__或基类的__dict__中没有找到,才会调用__getattr__。当属性name可以通过正常机制追溯到时,__getattr__是不会被调用的。如果在__getattr__(s
用户1214487
2018/01/24
1.3K0
面向对象进阶
反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问、检测和修改它本身状态或行为的一种能力(自省)。这一概念的提出很快引发了计算机科学领域关于应用反射性的研究。它首先被程序语言的设计领域所采用,并在Lisp和面向对象方面取得了成绩。
超蛋lhy
2018/08/31
3540
Python内置(4)类相关的内置
如果说object是所有对象(objects)的父类,那么type就是所有类(classes)的父亲了。 所有对象继承自object,所有类继承自type type是可用于动态创建新类的内置项。好吧,它实际上有两个用途: 1.如果给定单个参数,它将返回该参数的“类型”,即用于创建该对象的类:
一只大鸽子
2022/12/06
2.4K0
Python进阶——如何正确使用魔法方法?(上)
在做 Python 开发时,我们经常会遇到以双下划线开头和结尾的方法,例如 __init__、__new__、__getattr__、__setitem__ 等等,这些方法我们通常称之为「魔法方法」,而使用这些「魔法方法」,我们可以非常方便地给类添加特殊的功能。
_Kaito
2021/03/23
7210
[PYTHON] 核心编程笔记(13.P
类与实例相互关联,类是对象的定义,而实例是"真正的实物",它存放了类中所定义的对象的具体信息
py3study
2020/01/07
3920
Python学习笔记整理(十五)类的编写
类代码编写细节 一、class语句 一般形式 class    <name>(superclass,...):     data=value     def mothod(self,...):         self.member=value 在class语句内,任何赋值语句都会产生类属性。 类几乎就是命名空间,也就是定义变量名(属性)的工具,把数据和逻辑导出给客户端。 怎么样从class语句得到命名空间的呢? 过程如下。就像模块文件,位于class语句主体中的语句会建立起属性。当py
py3study
2020/01/08
9140
python面向对象的多态-类相关内置函数-类内置魔法函数-迭代器协议-上下文管理-04
首先强调,多态不是一种特殊的语法,而是一种状态,特性(多个不同对象可以相应同一个方法,长身不同的结果)
suwanbin
2019/09/26
6880
python面向对象的多态-类相关内置函数-类内置魔法函数-迭代器协议-上下文管理-04
python类特列方法使用
class Rgc(object): def __new__(cls, *args, **kwargs): print('在类通过__new__方法实例化一个对象') return super(Rgc, cls).__new__(cls) def __init__(self, name, gender): """ Usage: >>> Rgc('rg','man') :param name:
用户1558882
2019/03/15
1.3K0
Python学习 Day 8 继承 多态 Type isinstance dir __slots__
在OOP程序设计中,当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类、父类或超类(Base class、Superclass)。
统计学家
2019/04/10
9080
Python OOP-4
8. 类的成员描述符(属性) 类的成员描述是为了在类中对类的成员属性进行相关操作而创建的一种方式 get:获取属性的操作 set:修改或添加属性操作 delete:删除属性的操作 如果想使用类的额成员描述符,大概有三种方法 使用类实现描述器 使用属性修饰符 使用property函数 property函数很简单 property(fget, fset, fdel, doc) 无论哪种修饰符都是为了对成员属性进行相应的控制 类的方式:适用多个类中的多个属性共用同一个描述符 property:适用当前类中使用,可
ruochen
2021/03/01
3980
Python  OOP-4
相关推荐
python 多重类继承__init__
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文