isinstance与issubclass

issubclass:判断子类是否属于父类,是则返回True,否则返回False

isinstance:判断对象是否属于类,是则返回True,否则返回False

class Bar:passclass Foo(Bar):passprint(issubclass(Foo,Bar))#输出一个True
obj=Foo()print(isinstance(obj,Foo))#输出一个True

反射

反射:通过字符串来反射/映射到对象/类的属性上
class People:def __init__(self,name,age):self.name=nameself.age=agedef run(self):print('%s is running' %self.name)obj=People('egon',18)print(hasattr(obj,'name')) # 'name' in obj.__dict__  判断属性是否在__dict__里
print(getattr(obj,'name')) # obj.__dict__['name']    从__dict__里获取name,没有则会报错
print(getattr(obj,'xxx',None)) # obj.__dict__['xxx'] 设置没有找到返回None

setattr(obj,'name','EGON') #obj.__dict__['name']='EGON'  更新
setattr(obj,'xxx',1111) #obj.__dict__['xxx']=111

delattr(obj,'name')

内置方法

# __str__: 在对象被打印时自动触发,可以用来定义对象被打印时的输出信息# 注意:必须返回一个字符串类型的值
class People:def __init__(self, name, age):self.name = nameself.age = agedef __str__(self):print('run..........')return '<name:%s age:%s>' % (self.name, self.age)obj1 = People('egon', 18)
print(obj1)  # print(obj1.__str__())


# __del__: 在对象被删除时先自动触发该方法,可以用来回收对象以外其他相关资源,比如系统资源
class Foo:def __init__(self,x,filepath,encoding='utf-8'):self.x=xself.f=open(filepath,'rt',encoding=encoding)def __del__(self):print('run.....')# 回收对象关联的其他资源
        self.f.close()obj=Foo(1,'a.txt')
del obj
print('主===========>')


# __call__: 在对象被调用时会自动触发该方法,可以用来???
class Foo:def __init__(self,x,y):self.x=xself.y=ydef __call__(self, *args, **kwargs):print(self,args,kwargs)obj=Foo(1,2)
obj(1,2,a=3,b=4) #obj.__call__(obj,1,2,a=3,b=4)

转载于:https://www.cnblogs.com/xvchengqi/p/9525681.html

Python入门学习-DAY27- isinstance与issubclass、反射、内置方法相关推荐

  1. Python入门学习 DAY 05 字符串,列表的内置方法

    Python入门 DAY 05 本篇文章主要介绍字符串类型及内置方法,列表类型及内置方法 1.字符串类型及内置方法 (1)字符串定义       1.字符串中的字符是有序的          可以通过 ...

  2. Python 入门 —— Python 面向对象:类的创建及其基本内置方法的使用

    Python 面向对象:类的创建及其基本内置方法的使用 首先了解一下什么是面向对象 面向过程: 就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了. ...

  3. python_day21面向对象的进阶(反射,内置方法,)

    # 两个内置函数 *# 反射 *****# 内置方法 *** # 类(定义) # 静态属性 类属性(变量) 直接写在类中,全大写 # 动态属性 方法(函数) self # 类方法 @classmeth ...

  4. 29 反射 内置方法 元类

    反射 内置方法 元类 1 反射 1.1 什么是反射机制 Python属于动态语言,即程序执行变量定义语句时才确定变量的类型. 反射机制指的是在程序的运行过程中能够动态地获取对象信息以及动态地调用对象功 ...

  5. issubclass和isinstance 反射 内置方法(魔术方法)

    目录 issubclass 和 isinstance issubclass isinstance 反射 通过用户输入的key,value往对象中赋值 动态的往对象中放方法 动态的删除属性 动态删除对象 ...

  6. 关于学习Python的一点学习总结(33->继承中内置方法及多继承)

    73.继承中的一些内置方法: 1. issubclass(类1,类2):判断一个类是不是另一个类的子类: 2. 类名. _ bases _ :访问一个类的特殊属性: 3. isinstance(对象, ...

  7. python基础30个常用代码大全-Python3列表内置方法大全及示例代码小结

    Python中的列表是简直可说是有容乃大,虽然看似类似C中的数组,但是Python列表可以接受任意的对象元素,比如,字符串,数字,布尔值,甚至列表,字典等等,自由度提升到一个新的高度,而Python也 ...

  8. python入门视频教程推荐-python入门学习哪个书比较好(python视频教程知乎)

    自学python的学习路线是什么?推荐一些python学习资源 第一段 初级,掌握Python的语法和常用库的使用 这里首先推雪锋在网上的书籍,这是Python2.7的,这本书适合于重头开始一直读完, ...

  9. Python入门学习---第四天

    面向对象编程 类和实例 概念与其他面向对象编程语言类似. 以Student类为例,在Python中,定义类是通过class关键字: class Student(object):pass (object ...

最新文章

  1. 基于Kubernetes的云平台存储容器化实践
  2. 老师与学生打赌,谁会赢?
  3. requests 两种传参方式
  4. c语言 utf 8转字符串,如何将UTF-8字节[]转换为字符串?
  5. 前端学习(2835):小程序中使用less
  6. html-超链接标签
  7. arp 不同网段 相同vlan_同vlan不同网段能否ping通?
  8. 大鱼风控笔记 3:量化风控政策的关注点
  9. linux脚本制定java堆大小_Java使用比堆大小更多的内存(或正确的Docker内存限制大小)...
  10. 微软发布2016年5月安全补丁 提醒及时修复
  11. 极简代码(二)—— 内积
  12. 帮助干活,朋友馈赠了购物卡
  13. 手机(摩托罗拉、索爱、西门子、LG)大部分机型的cpu型号
  14. 【商业模式学习感悟】趣步App——新型商业模式,还是新型传销?
  15. MacOS系统通过命令行启动Chrome浏览器并添加启动参数
  16. 如何判断一个点在三角形内部
  17. 文小刚:量子革命是最不可思议的物理革命
  18. 如何设计游戏中的道具功能(二)
  19. linux挂载u盘显示目录忙,linux下挂载u盘及iso8859-1 not found错误解决
  20. 服务启动时,报Command line is too long异常

热门文章

  1. 刷爆AI圈!基于Transformer的DALL-E代码刚刚开源了
  2. 总结 | “卷积”其实没那么难以理解
  3. 斯坦福2019秋季课程:图机器学习资料全公开
  4. CVPR2019 oral 目标跟踪算法之SiamRPN++
  5. 《Python编程从入门到实践》记录之range、min、max、sum函数
  6. jsp页面适应手机屏幕_HTML5之页面缩放 viewport
  7. float php 运算_PHP面试经典题目
  8. java求圆弧切线_两个圆的公切线
  9. django mysql filter_Django filter中用contains 在mysql中的问题
  10. 2021年上半年系统集成项目管理工程师案例分析真题及答案解析