Python继承和反射

一个测试工程师走进一家酒吧…… 一个测试工程师走进一家酒吧,要了一杯啤酒;一个测试工程师走进一家酒吧,要了一杯咖啡;一个测试工程师走进一家酒吧,要了 0.7 杯啤酒;一个测试工程师走进一家酒吧,要了-1 杯啤酒;一个测试... 阅读详情

代码测试环境:WIN10+Pycharm+Python 3.9.7

内置函数:dir

dir([object]) -> list of strings
  • 如果不带参数调用,则返回当前作用域中的名称(打印结果如下)
print(dir())
# ['__annotations__', '__builtins__', '__cached__', '__doc__',
# '__file__', '__loader__', '__name__', '__package__', '__spec__']
  • 如果带参数
    返回 按字母序排列 的 名称列表
    列表包含:给定对象的 部分属性
class A:
    b = 1234
    __c = 5678

print(dir(A()))
# ['_A__c', '__class__', '__delattr__', '__dict__', '__dir__', '__doc__',
# '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__',
# '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__',
# '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__',
# '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'b']

继承

非继承

class A:
    def __init__(self, a):
        self.a = a
        self.c = 'ccc'
    def get_a(self):
        print(self.a)

class B:
    def __init__(self, b):
        A.__init__(self, b)

# 实例化B
obj = B('a')
# 遍历B类对象的属性
for attr in dir(obj):
    if not attr.startswith('_'):
        print(attr)
打印结果
a
c

B没有继承A,但有A类中的a和c属性

继承

class A:
    def __init__(self, a):
        self.a = a
    def get_a(self):
        print(self.a)

class B(A):
    def __init__(self, b):
        A.__init__(self, b)

print('\n'.join(i for i in dir(B('a'))if not i.startswith('_')))
打印结果
a
get_a

B类对象 不但 有A类的属性a,还有 方法get_a

连续继承

class A:
    def __init__(self):
        self.a = 1
    def get_a(self):
        print(self.a)

class AA(A):
    def __init__(self, aa):
        super().__init__()
        self.aa = aa

class B(AA):
    def __init__(self, aa, b):
        super().__init__(aa)
        self.b = b

print('\n'.join(i for i in dir(B('a', 'b'))if not i.startswith('_')))

a
aa
b
get_a

多继承

可以看到super().__init__()和B.__init__(self)有区别

class A:
    def __init__(self):
        self.a = 1
    def get_a(self):
        print(self.a)

class B:
    def __init__(self):
        self.b = 2
    def get_b(self):
        print(self.b)

class C(A, B):
    def __init__(self, c):
        super().__init__()
        self.c = c

print('\n'.join(i for i in dir(C(3))if not i.startswith('_')))

a
c
get_a
get_b

class A:
    def __init__(self):
        self.a = 1
    def get_a(self):
        print(self.a)

class B:
    def __init__(self):
        self.b = 2
    def get_b(self):
        print(self.b)

class C(A, B):
    def __init__(self, c):
        A.__init__(self)
        B.__init__(self)
        self.c = c

print('\n'.join(i for i in dir(C(3))if not i.startswith('_')))

a
b
c
get_a
get_b

反射

把字符串反射成内存对象

  • hasattr:返回 对象 是否 具有 给定名称的属性
  • getattr:从对象中获取命名属性
  • setattr:给指定对象的指定属性设置为值
  • delattr:从指定对象中删除指定属性
class A:
    def __init__(self, a):
        self.a = a
    def get_a(self):
        print(self.a)

obj = A('abcd')

# hasattr:返回 对象 是否 具有 给定名称的属性
print(hasattr(obj, 'get_a'))
# 打印结果:True

# getattr:从对象中获取命名属性;等价于 obj.a
print(getattr(obj, 'a'))
# 打印结果:abcd

# setattr:给指定对象的指定属性设置为值
setattr(obj, 'e', 'eee')
print(obj.e)
# 不报错,打印结果:eee

# delattr:从指定对象中删除指定属性
delattr(obj, 'a')
print(','.join(i for i in dir(obj)if not i.startswith('_')))
# 打印结果:e,get_a
# a被删了,所以冇打印
Bean named‘ddlApplicationRunner‘is expected to be of type ‘org.springframework.boot.Runner‘ springboot3.1.7整合mybatisplus3.5.3.2版本报错,sringboot3.x整合myabtis报错 阅读详情

相关推荐

腾讯滑块验证码collect参数逆向与JSVMP对抗实战

本文深入解析腾讯滑块验证码collect参数的逆向过程与JSVMP虚拟机对抗技术。通过详细的环境搭建、抓包分析和JSVMP逆向技巧,揭示collect参数的生成逻辑与加密流程,并提供完整的模拟实现方案和常见问题排查方法,助力开发者突破腾讯天御验证码的防护机制。

weixin_29009501的博客 1583

python基础面向对象(类、继承反射)

python第五节课面向对象编程类 面向对象编程 编程 = 特定语法 + 数据结构 + 算法 函数式编程 面向对象编程 面向过程编程 面向对象编程将数据和操作数据的相关方法封装到对象中,组织代码和数据的方式更加接近人的思维,从而大大提高了编程的效率。 什么是对象 对象是内存中专门用来存储数据的一块区域 对象可以存储各种数据(数字、布尔、函数、类) 对象的组成成分 对象的标识:ID 对象的类型:type 对象的值:value 面向过程(top-down lang

qq_38874239的博客 473

NVIDIA Jetson Orin DLA架构解析与AI推理优化实践

深度学习加速器(DLA)作为专用AI推理芯片,通过固定功能架构实现卷积、池化等神经网络操作的高效能比处理。其核心原理在于硬件级优化计算单元与数据流,相比通用GPU可提升3-5倍能效。在边缘计算场景中,DLA与GPU的异构协同成为关键,特别适合自动驾驶感知、机器人视觉等实时性要求高的应用。NVIDIA Jetson Orin平台通过结构化稀疏技术,在ResNet50等模型上实现近2倍性能提升。开发实践中需注意算子支持、精度校准等关键点,结合TensorRT工具链可充分发挥DLA在低功耗场景的独特优势。

weixin_32999557的博客 399

Python中反射

反射 运行时,区别于翻译时,指的是程序被加载到内存中执行的时候。 反射,reflection,指的是运行时获取类型定义信息。 一个对象能够在运行时,像照镜子一样,反射出其类型信息。简单说,在Python中,能够通过一个对象,找出其type、class、attribute或method的能力,称为反射或自省。 具有反射能力的函数有type(),isinstance(),callable().dir(...

都枯槐的博客 1万+

AS5600磁编码器选型与安装避坑指南:磁铁形状、间隙距离到底怎么选?(附实测数据)

本文详细解析了AS5600磁编码器的选型与安装要点,包括磁铁形状、间隙距离等关键参数的选择,并附有实测数据支持。特别针对Arduino和I2C接口的应用场景,提供了硬件选型和机械安装的实用指南,帮助开发者避免常见陷阱,提升系统精度和稳定性。

weixin_27038245的博客 290

gesp c++ 八级知识点

gesp c++ 八级知识点

MMD.然大大 2250

python使用反射机制实例化对象

之前在做数据解析的时候,发现不同类别的数据解析的流程是一样的,只不过每次去查询获取数据的时候表不相同,为了代码能够简洁一些,想到了先创建一个父类A,每个数据类别对应一个A的子类,在子类中实现数据查询的方法,然后通过获取A的所有子类对象,用反射机制实例化对象,再调用数据查询的方法来完成所有类别的数据解析工作,这样如果再新增一个类别,只需要再添加一个A的子类对象即可。 例子: 项目结构如下:

S-H_A-N 1万+

【ISP图像处理】Demosaic去马赛克技术演进与边缘优化策略

本文深入解析了ISP图像处理中的Demosaic(去马赛克)技术。从Bayer阵列原理出发,梳理了从双线性插值、Hamilton-Adams边缘导向算法到利用通道相关性与自相似性的技术演进历程,并重点探讨了针对边缘与纹理伪影的优化策略,为工程实践中的算法选型与硬件协同设计提供了专业指导。

weixin_29091445的博客 389

python继承和反射,查询返回结果

python继承和反射,查询返回结果

weixin_45782763的博客 374

文献解读:结构方程模型SEM基础,小白看这个就基本够了

今天要解读的依然是一篇教学文献:The Basics of Structural Equation Modeling,文献作者是Diana Suhr, Ph.D. University of Northern Colorado。 文献链接: https://www.lexjansen.com/wuss/2006/tutorials/TUT-Suhr.pdf 结构方程模型是: 用来检验显变量与潜变量关系假设的综合性的统计技巧 用来表示,估计或者检验变量间理论关系的技巧 用来探究一系列潜变量和显变量因

Codewar的博客 6万+

分子对接时,如何批量处理小分子受体和蛋白配体,让他们快速转化为pdbqt格式,然后用vina跑?

🏆本文收录于 《全栈Bug调优(实战版)》 专栏,该专栏专注于分享我在真实项目开发中遇到的各类疑难Bug及其深层成因,并系统提供高效、可复现的解决思路和实操方案。无论你是刚入行的新手开发者,还是拥有多年项目经验的资深工程师,本专栏都将为你提供一条系统化、高质量的问题排查与优化路径,助力你加速成长,攻克技术壁垒,迈向技术价值最大化与职业发展的更高峰🚀!

**My Coding Family** 1222

python继承和反射

python继承和反射

weixin_42924890的博客 313

用 DCL 编写 DEFINE ROLE:把 ABAP CDS 的访问控制做对、做实、做漂亮

摘要: 本文详细讲解如何在ABAP CDS中使用DCL(数据控制语言)实现行级授权,确保业务数据安全。核心要点包括: DCL原理:通过DEFINE ROLE将访问条件绑定到CDS实体,自动附加到查询条件(类似隐式WHERE),保障授权一致性。 关键语法: 必需注解@MappingRole: true声明映射角色。 ASPECT pfcg_auth关联PFCG权限对象,动态控制访问。 注解@AccessControl.authorizationCheck定义授权检查策略(如#CHECK启用强制控制)。 优先级

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 168

Python继承和组合、面向对象之反射、面向对象之魔法方法

其中有四种内置函数的使用(Python中一切皆对象,类和对象都可以用下述四个方法)2.getattr() 根据字符串获取对象对应的属性名(值)或方法名(函数体代码)为什么叫魔法方法呢?1.hasattr() 判断对象是否含有某个字符串对应的属性名或方法。eg:__init__方法给对象设置独有的数据的时候会自动触发实例化。在Python中,反射指的是通过字符串来操作对象的属性或方法。3.setattr() 根据字符串给对象设置或者修改数据。4.delattr() 根据字符串删除对象或者类中的属性。

Mchen的博客 303

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

python根据一个基类生成派生类_python 面向对象(二)继承 多态 反射

1.单继承,基类和派生类中都存在,调用的时候优先在派生类中寻找2.多继承,两个父类都有的方法,子类对象进行调用的时候,从左到右进行调用 :child(father,mother)3.多重继承查找顺序先从E里面找,找不到,去C里面找,找不到,去A里面找,找不到,去D里面找,找不到,去B里面找先从E里面找,找不到,去C里面找,找不到,去A里面找,找不到,去D里面找,找不到,去B里面找,找不到去,o里面...

weixin_39994627的博客 303

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

python根据一个基类生成派生类_python根据一个基类生成派生类_python 面向对象(二)继承 多态 反射...

1.单继承,基类和派生类中都存在,调用的时候优先在派生类中寻找2.多继承,两个父类都有的方法,子类对象进行调用的时候,从左到右进行调用 :child(father,mother)3.多重继承查找顺序先从E里面找,找不到,去C里面找,找不到,去A里面找,找不到,去D里面找,找不到,去B里面找先从E里面找,找不到,去C里面找,找不到,去A里面找,找不到,去D里面找,找不到,去B里面找,找不到去,o里面...

weixin_36204061的博客 388

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

python根据一个基类生成派生类_Python从基类Python面向对象(2)继承多态性反射生成派生类,python,根据,一个,二...

1.单继承,基类和派生类中都存在,调用的时候优先在派生类中寻找2.多继承,两个父类都有的方法,子类对象进行调用的时候,从左到右进行调用 :child(father,mother)3.多重继承查找顺序先从E里面找,找不到,去C里面找,找不到,去A里面找,找不到,去D里面找,找不到,去B里面找先从E里面找,找不到,去C里面找,找不到,去A里面找,找不到,去D里面找,找不到,去B里面找,找不到去,o里面...

weixin_29102619的博客 174

python 继承-类的成员-装饰器-反射-异常处理

继承 继承分为 单继承 多继承 继承的优点 增加了类的耦合性(耦合性不宜多,宜精)。 减少了重复代码。 使得代码更加规范化,合理化。 调用父类的方法 父类.func(对象,其他参数) super().func(参数) 继承父类的构造函数 super(Person,self).__init__(name,sex,age) # 方法一 super().__init...

优快云zhaojiale的博客 1万+

python面向对象高级和应用,继承顺序mro和c3算法,自定义异常处理,import_module + 反射

python面向对象高级和应用,继承顺序mro和c3算法,自定义异常处理,import_module + 反射

Python 156

Python编程:09- 面向对象--反射(单例模式)&继承&重写&多态

1、面向对象基础版本 用以下例子做说明: 1、新建一个长方形的类,这个类的属性,方法包含所有长方形的公共的属性和方法 class Rectangle: list1=[10,20,30,40,50] # 类属性,具有唯一性 def __init__(self,length,width): # 初始化方法 长方形都有长宽 self.length=len...

测试小白升级记 200

Python基础20-面向对象:静态、组合、继承与派生、多态、封装、反射、内置attr方法等

阐述python面向对象的机制 静态:静态属性@property、类方法@classmethod、静态方法@staticmethod。 组合、继承与派生、多态、封装、反射、模块的动态导入。 内置的attr方法:带双下户线的attr方法__setattr__、__getattr__、__delattr__。 继承方式完成包装。

福来阁86号技师的妖孽日常 339

反射

1.两个内置函数:   issubclass(Son,Foo)    判断Son是否是Foo的子类                  判断类与类之间是否有继承关系关系 class Foo(object):pass class Son(Foo):pass ret = issubclass(Son,Foo) print(ret) #True   isinstance(obj,...

weixin_30387339的博客 82

C++ Boost 之Python(继承)

继承 在Python中继承用Boost.Python扩展的类在Python中支持单继承和多继承.你可以在派生类中任意地混合内建Python类和扩展类.只要Boost.Python 扩展类是在Python中新的类的基类中, 那么结果就是一个扩展的类: >>> class MyPythonClass:... def f(): return MyPythonClass.

Lythm的专栏 2673

python 类和对象(属性、初始化函数__init__、方法、继承(重写、多层继承、多重继承)、动态属性 【反射】setattr)

类和对象:抽象 + 概念很多。== 概念类比生活中例子理解就可以。类: 人类 猫类 狗类 植物类,类是一类事物统称,这类事物具备共同特征。对象:Mimanchi,折耳猫,汪汪,绿萝,类里面的一个实实在在的个体成员。是类的具象化存在。属性: 类或者对象的特征和状态。【人:眼睛,肤色: 黄色 身高,白色,卷毛狗】类: 人类 猫类 狗类 植物类,类是一类事物统称,这类事物具备共同特征。对象:Mimanchi,折耳猫,汪汪,绿萝,类里面的一个实实在在的个体成员。是类的具象化存在。

qq_35283902的博客 1583

4.10 python 面向对象编程(类、对象、实例、继承、多态、封装、super()、类的装饰器、反射、内置魔术方法) 学习笔记

文章目录1 类、对象/实例、实例化2 三大特性1)继承2)封装3)多态4)super方法5)类中的三个装饰器(内置函数)6)反射7)一些内置的魔术方法3 补充1)内置数据结构2)非(python)内置数据结构3)抽象类实例 1 类、对象/实例、实例化 类有一个空间,存储的是定义在class中的所有名字 每一个类又拥有自己的空间,通过对象名.__dict__就可以查看这个对象的属性和值 ...

G_xiaotiaowa 717

day31 组合,反射和魔术

getattr: 获取属性,getattr(stu,'属性名(字符串格式)',可写可不写 如果没找到就输出这的值 没写直接就报错)setattr:设置属性,serattr(stu,'a',777)------->stu.a = 777hasattr:判断是否有某个属性delattr:当你删除对象的时候会触发__del__的执行,当整个脚本的程序都执行完毕的时候,也会触发__del__的执行__str__:在执行完输出值时,触发该方法,可以用于实例化后直接将变量输入语句输出。

qq_65092135的博客 74
上一篇: Python基础算法:排序、查找、二叉树
下一篇: 1、matplotlib 画图基础步骤
小基基o_O
博客等级 码龄9年 4414粉丝 467原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小基基o_O

您的鼓励是我创作的巨大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值