python 面对对象 类 补充

isinstance

isinstance():判断一个实例化对象是否属于这个类的,isinstance(对象,类)

python 复制代码
class Man():
    pass

class Women():
    pass

a = Man()

print(isinstance(a, Man))    # True
print(isinstance(a, Women))   # False

类的属性操作

  1. getattr() 获取已知实例的已知属性的属性值
  2. setattr() 给对象添加属性,有该属性就修改属性
  3. hasattr() 判断指定对象是否存在指定属性
  4. delattr() 删除指定对象的指定属性
python 复制代码
class People():
    name = '张三'
    

a = People()

print(getattr(a, 'name'))      # 张三

setattr(a, 'name', '李四')     # 修改属性
print(getattr(a, 'name'))      # 再次查看就是 李四

setattr(a, 'age', 18)          # 添加age属性 值为18
print(getattr(a, 'age'))       # 18  可以查看

print(hasattr(a, 'sex'))       # False  sex并未在实例化对象里面

delattr(a, 'name')             # 删除name属性
#print(getsttr(a, 'name'))     # 所以这里就会报错了
相关推荐
喜欢喝果茶.几秒前
Qt MQTT部署
开发语言·qt
wefg15 分钟前
【Linux】线程同步与互斥 - 2(线程同步/条件变量/基于阻塞/环形队列的cp模型/线程池/线程安全/读写锁)
linux·开发语言
_李小白8 分钟前
【AI大模型学习笔记之平台篇】第三篇:Minimax
人工智能·笔记·学习
雨落在了我的手上12 分钟前
C语言之数据结构初见篇(2):顺序表之通讯录的实现(续)
c语言·开发语言·数据结构
寂静or沉默14 分钟前
Ansible 学习总结
学习·ansible
【数据删除】34815 分钟前
计算机复试学习笔记 Day41
笔记·学习·算法
你这个代码我看不懂15 分钟前
JVM栈、方法区和堆内存
java·开发语言·jvm
GIS阵地18 分钟前
一场由Qt5 painter的drawRect引起的血雨腥风
开发语言·qt·gis·qgis
学编程就要猛20 分钟前
JavaEE初阶:多线程案例
java·开发语言
码不停蹄Zzz23 分钟前
对内存堆栈管理的简单理解[C语言]
c语言·开发语言