isinstance和issubclass

  • isinstance(obj,cls)检查obj是否是cls的对象,它会检查父类
class Foo:
pass f = Foo()
print(isinstance(f,Foo)) # f是Foo的实例化对象,所以打印True
True
class Foo(object):
pass class Bar(Foo):
pass print(isinstance(Bar(), Foo)) # 可以检查父类
True
  • type()也可以用来获取实例化出对象的类,但它不能检测父类
class Foo(object):
pass class Bar(Foo):
pass print(type(Foo()) == Foo) # Foo()是Foo的实例化对象,type(Foo())就是Foo
print(type(Bar()) == Foo) # Bar()是Bar的实例化对象,type(Bar())是Bar,所以返回False
True
False
  • issubclass(sub,super)检查sub类是否是super的子类或派生类
class Foo:
pass class Bar(Foo):
pass print(issubclass(Bar,Foo)) # Bar是Foo的子类,所以打印True
True

反射(hasattr,getattr,setattr,delattr)

1.反射就是通过字符串来操作类或者对象的属性

2.反射本质就是在使用内置函数,其中反射有以下四个内置函数:

  • hasattr: 通过字符串判断一个属性是否存在这个类或对象中
  • getattr:通过字符串获取类或对象中的某个属性
  • setattr:通过字符串修改类或对象的属性
  • delattr:通过字符串删除类或对象的属性
class Foo:
school = 'oldboy' def __init__(self,name,age):
self.name = name
self.age = age f = Foo('nick', '18')
print(hasattr(f, 'name')) # True
print(hasattr(f, 'gender')) # False print(getattr(f, 'name')) # nick
print(getattr(f, 'gender', None)) # 不存在该属性时返回第三个参数None,不写会报错 setattr(f, 'gender', 'male')
print(f.gender) # male delattr(f, 'gender')
print(f.__dict__) # {'name': 'nick', 'age': '18'}

day23-1 isinstance、issubclass和反射的更多相关文章

  1. 方法和函数,isinstance/issubclass/type以及反射

    一丶,isinstance/issubclass/type 1.issubclass检查第一个参数是否是第二个参数的 子子孙孙类 class Foo(): pass class Boo(Foo): p ...

  2. 面向对象(五)——isinstance与issubclass、反射、内置方法

    isinstance与issubclass.反射.内置方法 一.isinstance与issubclass方法 1.isinstance是用来判断对象是否是某个类 isinstance(obj,cla ...

  3. 面向对象~~类的成员: 私有成员,公有成员, 实例方法, 类方法, 静态方法, 属性(property), isinstance ,issubclass, 元类(type)

    一 私有成员公有成员 公有成员: 在任何地方都能访问 私有成员: 只有在类的内部才能访问 类从加载时,只要遇到类中的私有成员,都会在私有成员前面加上_类名 二 实例方法 实例方法就是类的实例能够使用的 ...

  4. Python面向对象05 /私有成员、类方法、静态方法、属性、isinstance/issubclass

    Python面向对象05 /私有成员.类方法.静态方法.属性.isinstance/issubclass 目录 Python面向对象05 /私有成员.类方法.静态方法.属性.isinstance/is ...

  5. python 面向对象专题(五):私有成员、类方法、静态方法、属性、isinstance/issubclass

    https://www.cnblogs.com/liubing8/p/11325421.html 目录 Python面向对象05 /私有成员.类方法.静态方法.属性.isinstance/issubc ...

  6. python 全栈开发,Day23(复习,isinstance和issubclass,反射)

    一.复习 class A: def func1(self):pass def func2(self): pass def func3(self): pass a = A() b = A() print ...

  7. 27 isinstance与issubclass、反射、内置方法

    isinstance与issubclass issubclass:判断子类是否属于父类,是则返回True,否则返回False isinstance:判断对象是否属于类,是则返回True,否则返回Fal ...

  8. python基础之类的isinstance与issubclass、反射

    一 isinstance(obj,cls)和issubclass(sub,super) isinstance(obj,cls)检查是否obj是否是类 cls 的对象 class Foo: pass o ...

  9. isinstance、issubclass、反射

    一.isinstance.issubclass # isinstance(obj, cls) 检查obj是否是cls的对象 class A(object):pass a = A() print(isi ...

随机推荐

  1. publish and submit

    http://blog.csdn.net/w_jewelry/article/details/8123639 1.Gerrit里点击“publish and submit”提示如下:Your chan ...

  2. HDU2255 奔小康赚大钱 —— 二分图最大权匹配 KM算法

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2255 奔小康赚大钱 Time Limit: 1000/1000 MS (Java/Others)    ...

  3. CodeForces 721B Passwords (水题)

    题意:给定 n 个密码,你要按长度不递减的顺序进行尝试,问你最多和最少试多少次可能找出密码,每尝试 k 次错误的,就要等5秒. 析:我们只要把长度全都统计下来,然后从1开始去找目标长度,最少的就是正好 ...

  4. bzoj 1797: [Ahoi2009]Mincut 最小割【tarjan+最小割】

    先跑一遍最大流,然后对残量网络(即所有没有满流的边)进行tarjan缩点. 能成为最小割的边一定满流:因为最小割不可能割一半的边: 连接s.t所在联通块的满流边一定在最小割里:如果不割掉这条边的话,就 ...

  5. bzoj 3894 文理分科【最小割+dinic】

    谁说这道和2127是双倍经验的来着完全不一样啊? 数组开小会TLE!数组开小会TLE!数组开小会TLE! 首先sum统计所有收益 对于当前点\( (i,j) \)考虑,设\( x=(i-1)*m+j ...

  6. 安装MySQL需要注意的事项

    一.安装MySQL之后,怎样启动MySQL,以及登录.查看数据库操作? 用管理员身份运行cmd或power shell 二.当然有可能会出现不能在cmd或power shell中登录数据库账户 造成这 ...

  7. Python测试工具——nose

    1.nose 特点: a)         自动发现测试用例(包含[Tt]est文件以及文件包中包含test的函数) b)         以test开头的文件 c)         以test开头的 ...

  8. CAD中的相对坐标和绝对坐标

    绝对坐标就是你作图的整个界限的原点,也就是CAD系统默认的原点坐标. 相对坐标就是相对于当前的点的坐标. 这两种坐标都有,可以根据习惯和需要自己看使用哪种. 一.绝对坐标 ①笛卡尔坐标(X,Y,Z) ...

  9. MySQL 一对多查询,合并多的一方的信息

    select   c.name,  (select   group_concat(name) from student   s   where  s.class_id =c.id ) from  cl ...

  10. jenkins软件工具部署

    Jenkins服务软件的安装部署 1.我们在linux安装部署Jenkins的时候,因为jenkins是一个java web程序,所以首先要保证linux系统上已经安装配置好java JDK环境,并安 ...