创作不易,来了的客官点点关注,收藏,订阅一键三连❤😜

前言
“人生苦短,我用python”,我是一个即将毕业的大学生,超超。如果你也爱python,不妨跟着萌新超超一起学习python,拿下python,一起加油,共同努力,拿到理想offer!
系列文章目录
Python | python中的下划线,常用魔术方法与属性
Python | 经典类与新式类,静态方法、类方法与实例方法详解!
Python | 什么是面向对象?类的定义、self和继承详解
概述
本期内容是python面向对象专题第四期,主要介绍python的自省以及python中的元类和抽象基类❤
目录
python中的自省
什么是自省
• 在计算机编程中,自省是指这种能力:检查某些事物以确定它是什么、它知道什么以及它能做什
么。自省向程序员提供了极大的灵活性和控制力。
• 有时我们要访问某个变量或是方法时并不知道到底有没有这个变量或方法,所以就要做些判断。判断是否存在字符串对应的变量及方法。
• 我们知道访问变量时是不能加引号的,否则会被当成字符串处理。如果要通过字符串找到对应的变量,那该怎么办呢
自省的4个方法
• getattr(obj, 'name'): 获取成员
根据字符串去获取obj对象里的对应的方法的内存地址
• hasattr(obj, 'name'): 检查是否含有成员
判断一个对象obj里是否有对应的name_str字符串的方法
• setattr(obj, 'age', 18): 设置成员
• delattr(obj, 'name'): 删除成员
举例说明
import math
# hasattr(math,"xx") # 判断math有没有XX属性
# getattr(math,"xx") # 获取math的xx属性
# setattr(math,"xx","obj") # 设置math的xx属性为obj
# delattr(math,"xx") # 删除math的xx属性
代码示例
class A:
name = "lzc"
__max= "max"
def func1(self):
print("i am func1")
def func2(self):
print("i am func2")
a = A()
choose =

本文详细介绍了Python中的自省机制,包括getattr、hasattr、setattr和delattr四个方法的使用。接着探讨了Python的元类,解释了元类如何拦截类的创建,并通过type函数创建类。最后,讨论了抽象基类(Abstract Base Class,ABC),阐述了其在定义接口规范和子类继承中的作用。适合Python初学者和进阶者阅读。
最低0.47元/天 解锁文章
1208

被折叠的 条评论
为什么被折叠?



