代码改变世界

第23天(反射)

2018-04-18 17:55  dalao说得对  阅读(123)  评论(0编辑  收藏  举报

1、反射

hasattr、getattr

这两个一般配合使用。其用法是getattr(a,'asd'),前者是类名(所在地),后者必须是字符串类型,hasattr用法与其一致。不同的地方在于,hasattr是检测是否有这个方法或者是属性,而getattr则是执行。

gatattr的用处很广,因为其后面的参数是以恶搞字符串的类型,可以搭配input使用,这样就大大的增强了程序的灵活性

还有俩不常用的 setattr与delattr,

前者是有3个参数,(在什么地方,叫啥名字,改成什么),用作创建或修改变量,可能偶尔会用到

后者是有2个参数,(在什么地方,叫啥名字),用作删除,非常不常用

2、isinstance 与  issubclass

类似于type是判断类型的,返回值都是bool,但是有不同的地方。

如isinstance可以判别继承关系,type就不可以,用法是isinstance(对象, 类)

issubclass可以判别继承关系,但是必须是issubclass(子类,父类)才会返回Ture