Python27天 反射 ,isinstance与ssubclass 内置方法
所学内容
反射
1、hasattr ( 判断一个属性在对象里有没有 ) -------------------- 【对象,字符串属性】本质是:# 判断 ' name ' in obj.__dict__
2、getattr ( 获取对象中字符串的属性 ) --------------------------- 【对象,第三参数,字符串属性】本质是:# 从一个字典 obj.__dict__ [ ' name ' ]
3、setattr ( 一个属性的赋值操作 ( 设置值,修改值 ) )---------【对象,属性,值】setattr 本质是:# obj.__dict__ [ ' FFY ' ]
4、delattr ( 删除属性操作 ) ------------------------------------------ 【删除属性】delattr 本质是:# 通过字符串来操作字典,但不要直接操作字典
内置方法
__str__ :在对象被打印时自动触发,可以用来定义对象被打印的输出信息(注意:必须返回一个字符串类型的值)
__del__ :在对象被删除时先自动触发该方法,可以用来回收对象以外其他相关资源
isinstance与ssubclass
isinstance(对象,类)--------------------- 判断一个对象是否是一个类的实例
issubclass(子类,父类)------------------ 判断一个类是否是另一个类的子类
反射的用法
class Ftp:
def get(self):
print('get') def put(self):
print('put') def login(self):
print('login') def run(self):
while True:
cmd = input('>>>: ').strip() # cmd='get'
if hasattr(self, cmd):
method = getattr(self, cmd)
method()
else:
print('输入的方法不存在') obj = Ftp()
obj.run()
内置的用法
__str__ :在对象被打印时自动触发,可以用来定义对象被打印的输出信息(注意:必须返回一个字符串类型的值)
class People:
def __init__(self, name, age):
self.name = name
self.age = age def __str__(self):
# print('run..........')
return '<name:%s age:%s>' % (self.name, self.age) obj1 = People('egon', 18)
print(obj1) # print(obj1.__str__()) obj2=list([1,2,3])
print(obj2)
__del__ :在对象被删除时先自动触发该方法,可以用来回收对象以外其他相关资源
class Foo:
def __init__(self,x,filepath,encoding='utf-8'):
self.x=x
self.f=open(filepath,'rt',encoding=encoding) def __del__(self):
print('run.....')
# 回收对象关联的其他资源
self.f.close() obj=Foo(1,'a.txt')
# del obj
print('主===========>')
isinstance与issubclass的用法
class Bar:
pass class Foo(Bar):
pass obj = Foo()
print(issubclass(Foo, Bar)) print(isinstance(obj, Foo))
Python27天 反射 ,isinstance与ssubclass 内置方法的更多相关文章
- python学习之老男孩python全栈第九期_day027知识点总结——反射、类的内置方法
一. 反射 ''' # isinstance class A:pass class B(A):pass a = A() print(isinstance(a,A)) # 判断对象和类的关系 print ...
- CSIC_716_20191129【面向对象高级----反射、类的内置方法(魔法方法)、单例模式】
反射 反射是通过'字符串'对 对象的属性进行操作,反射有四个内置的方法. hasattr 通过字符串 判断对象的属性或者方法是否存在 getattr 通过字符串 获取对象的属性或者方法 ...
- python基础之 反射,md5加密 以及isinstance, type, issubclass内置方法的运用
内容梗概: 1. isinstance, type, issubclass 2. 区分函数和方法 3. 反射(重点) 4. md5加密 1. isinstance, type, issubclass1 ...
- day28 面向对象:反射,内置函数,类的内置方法
面向对象进阶博客地址链接: http://www.cnblogs.com/Eva-J/articles/7351812.html 复习昨日内容: # 包 # 开发规范 # # hashlib # 登录 ...
- 27 isinstance与issubclass、反射、内置方法
isinstance与issubclass issubclass:判断子类是否属于父类,是则返回True,否则返回False isinstance:判断对象是否属于类,是则返回True,否则返回Fal ...
- 面向对象(五)--isinstance与issubclass方法、反射、内置方法(部分)、异常处理
一.isinstance与issubclass方法 1.isinstance是用来判断对象是否是某个类 isinstance(obj,class) 2.issubclass是用来判断一个类是否为另一个 ...
- 绑定与非绑定方法及反射,isinstance和issubclass内置函数
目录 绑定方法与非绑定方法 1.绑定方法 2.非绑定方法(staticmethod) isinstance和issubclass 内置函数 1.isinstance 2.issubclass 反射(面 ...
- 面向对象(五)——isinstance与issubclass、反射、内置方法
isinstance与issubclass.反射.内置方法 一.isinstance与issubclass方法 1.isinstance是用来判断对象是否是某个类 isinstance(obj,cla ...
- 多态 鸭子类型 反射 内置方法(__str__,__del__) 异常处理
''' 1什么是多态 多态指的是同一种/类事物的不同形态 2 为何要有多态 多态性:在多态的背景下,可以在不用考虑对象具体类型的前提下而直接使用对象 多态性的精髓:统一 多态性的好处: 1增加了程序的 ...
随机推荐
- js获取图片信息(二)-----js获取img的height、width宽高值为0
首先,创建一个图片对象: var oImg= new Image(); oImg.src = "apple.jpg"; 然后我们打印一下图片的信息: console.log(oIm ...
- select 多选 和单选,分组
<select name="group"> <option value="1">北京</option> <option ...
- Shell脚本备份数据库
使用crontab 定时备份数据库 1. 编辑crontab 规则,定时执行脚本 2. 在my.cnf 文件中加 [mysqldump] user=root password=密码 3.编写shell ...
- Django REST framework 自定义(认证、权限、访问频率)组件
本篇随笔在 "Django REST framework 初识" 基础上扩展 一.认证组件 # models.py class Account(models.Model): &qu ...
- 第十节:pandas之loc()、iloc()与ix()索引
- Thesis Viva checklist
This list gives you suggestions helpful in preparing to defend your thesis: I know my thesis thoroug ...
- 2.5.3 简单的 echo 输出
echo的任务就是产生输出,可用来提示用户,或是用来产生数据供进一步处理. 原始的echo命令只会将参数打印到标准输出,参数之间以一个空格隔开,并以换行符号(newline)结尾. ...
- SLF4J和Logback和Log4j和Logging的区别与联系
本文转载自:一个著名的日志系统是怎么设计出来的?(作者:刘欣) 前言 Java帝国在诞生之初就提供了集合.线程.IO.网络等常用功能,从C和C++领地那里吸引了大量程序员过来加盟,但是却有意无意地忽略 ...
- vim学习3-查找替换
一.字符的替换及撤销(Undo操作) 1.替换和撤销(Undo)命令 替换和Undo命令都是针对普通模式下的操作 命令 说明 r+<待替换字母> 将游标所在字母替换为指定字母 R 连续替换 ...
- JavaScript初步学习----基本使用,简单事件,修改样式,数据类型
JavaScript基本使用 JavaScript原名叫livescript,是一门动态类型,弱类型基于原型的脚本语言 用于页面特效,前后交替,后台开发(node) JavaScript写在s ...