所学内容

反射

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 内置方法的更多相关文章

  1. python学习之老男孩python全栈第九期_day027知识点总结——反射、类的内置方法

    一. 反射 ''' # isinstance class A:pass class B(A):pass a = A() print(isinstance(a,A)) # 判断对象和类的关系 print ...

  2. CSIC_716_20191129【面向对象高级----反射、类的内置方法(魔法方法)、单例模式】

    反射 反射是通过'字符串'对 对象的属性进行操作,反射有四个内置的方法. hasattr 通过字符串 判断对象的属性或者方法是否存在 getattr 通过字符串  获取对象的属性或者方法        ...

  3. python基础之 反射,md5加密 以及isinstance, type, issubclass内置方法的运用

    内容梗概: 1. isinstance, type, issubclass 2. 区分函数和方法 3. 反射(重点) 4. md5加密 1. isinstance, type, issubclass1 ...

  4. day28 面向对象:反射,内置函数,类的内置方法

    面向对象进阶博客地址链接: http://www.cnblogs.com/Eva-J/articles/7351812.html 复习昨日内容: # 包 # 开发规范 # # hashlib # 登录 ...

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

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

  6. 面向对象(五)--isinstance与issubclass方法、反射、内置方法(部分)、异常处理

    一.isinstance与issubclass方法 1.isinstance是用来判断对象是否是某个类 isinstance(obj,class) 2.issubclass是用来判断一个类是否为另一个 ...

  7. 绑定与非绑定方法及反射,isinstance和issubclass内置函数

    目录 绑定方法与非绑定方法 1.绑定方法 2.非绑定方法(staticmethod) isinstance和issubclass 内置函数 1.isinstance 2.issubclass 反射(面 ...

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

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

  9. 多态 鸭子类型 反射 内置方法(__str__,__del__) 异常处理

    ''' 1什么是多态 多态指的是同一种/类事物的不同形态 2 为何要有多态 多态性:在多态的背景下,可以在不用考虑对象具体类型的前提下而直接使用对象 多态性的精髓:统一 多态性的好处: 1增加了程序的 ...

随机推荐

  1. js获取图片信息(二)-----js获取img的height、width宽高值为0

    首先,创建一个图片对象: var oImg= new Image(); oImg.src = "apple.jpg"; 然后我们打印一下图片的信息: console.log(oIm ...

  2. 浅谈animation里的forwards

    forwards可译为向前走, animation-fill-mode(动画填充模式),定义动画播放时间之外的状态 顾名思义,就是在动画播放完了之后给它一个状态 animation-fill-mode ...

  3. jquery spa

    1.hashchange监听 2.根据url加载不同页面 $.ajax({ url:"/xx/xx.html" type:"get", dataType:&qu ...

  4. 20180429NOIP提高组精英班Day1测试

  5. Linux文件、目录属性

    文件.目录属性 可能有人觉得,文件这东西这么普通有什么好讲的,,,其实不然,在linux中一切皆文件,搞清楚文件的本质,将对我们大有裨益. 文件.目录属性简介 举个例子 randolf@localho ...

  6. BZOJ 1230 Usaco2008 Nov 开关灯

    [题意概述] 给出一个01序列,初始时序列全为0,每次有修改操作或询问操作,修改操作要求把L~R区间中的0变成1,1变成0,查询操作要求输出L~R区间的1的个数 [题解] 线段树. 每次区间修改把区间 ...

  7. BUAA_OO_博客作业三

    1 JML语言总结 1.1 JML语言的理论基础 ​ JML(Java Modeling Language)是用于对Java程序进行规格化设计的一种表示语言.JML是一种行为接口规格语言(Behavi ...

  8. BZOJ 4327 [JSOI2012]玄武密码 (AC自动机)

    题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=4327 题解: 做法挺显然,建出AC自动机之后在上面跑,标记所有走过的点,然后再进行递推 ...

  9. hdu2001 计算两点间的距离【C++】

    计算两点间的距离 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Su ...

  10. 【hiho一下 第144周】机会渺茫

    [题目链接]:http://hihocoder.com/contest/hiho144/problem/1 [题意] [题解] 找出两个数相同的因子的个数x 然后两个数各自的因子的个数numa,nub ...