isinstance   是 python中的内置函数 , isinstance()用来判断一个函数是不是一个类型 issubclass  是python 中的内置函数,  用来一个类A是不是另外一个类B的子类   issubclass(子类,父类) class Foo: pass obj=Foo() print(isinstance(obj,Foo))# 判断实例化的foo是不是这个类 #判断结果为True print(isinstance(obj,Foo)) 它就等同于 ======>>&…
不急着进入正题.先动手完成一个小程序: 设计一套简单的服务开启关闭程序,每次开启或关闭都得打印服务当前的状态: class Server(object): def __init__(self): self.status='stop' #初始状态 def start(self): #开启服务 if self.status=='running': #执行服务前检测当前状态,根据状态不同做相应处理 print("the Server was running,dont't need to start&q…
6.23 自我总结 面向对象的高阶 1.isinstance/type/issubclass 1.type 显示对象的类,但是不会显示他的父类 2.isinstance 会显示的对象的类,也会去找对象的父类,填写参数是对象,类isinstance(对象,类)如果对象属于后面的类会报Ture,反之False 3.issubclass 与isinstance 相似不过他填写的参数是类与类 4.总结 来说:type(对象)不会认为子类是一种父类类型:isinstance(对象,类)会认为子类是一种父类…
反射 : 是用字符串类型的名字 去操作 变量 相比于用eval('print(name)') 留有 安全隐患 反射 就没有安全问题 hasattr 语法: hasattr(object, name)object可以是对象,类,模块,当前Py文件.name是一个给字符串数据类型,可以是变量(属性),函数(方法).如果name在object中存在,则返回Ture,否则返回False. getattr与hasattr语法相同,返回的结果是对应name的值或函数. 反射对象的方法 a.func() re…
#!/usr/bin/env python # -*- coding:utf-8 -*- # 作者:Presley # 邮箱:1209989516@qq.com # 时间:2018-11-04 # 反射使用 import sys class WebServer(object): def __init__(self,host,port): self.host = host self.port = port def start(self): print("Server is starting...&…
hasattr(obj,name_str):#判断一个对象obj里面是否有对应的name_str字符串的方法,返回True或者Falsegetattr(obj,name_str):#根据字符串去获取对象里的对应方法的内存地址. class Dog(object): def __init__(self,name): self.name = name def eat(self,food): print('%s eating...:%s' %(self.name,food)) def talk(sel…
class Room: def __init__(self,name): self.name = name def big_room(self): print('bigroot') R = Room('回电话') #hasattr 有没某个属性,存在返回True 不存在返回Fales print(hasattr(R,'name')) #R实例里面 有没有name属性 结果是:True print(hasattr(R,'big_room')) #R实例里面 有没有big_room属性 结果是:Tr…
hasattr(object,name) hasattr用来判断对象中是否有name属性或者name方法,如果有,染回true,否则返回false class attr():     def fun(x):         return x%2==1 if __name__ == '__main__':     attr=attr()   print  hasattr(attr,'fun') setattr(object,name,value) 给对象的属性赋值,如属性不存在,先创建 class…
@property 在前面装饰器一章中,提过一句话,装饰器也可以用于类中,确实可以的,并且python的类也内置了一部分装饰器.并且在前两章的hasattr等四个内置方法中,也说过其用法很类似装饰器,到底在类中可以用装饰器不呢?还有具体有哪些内置的装饰器呢?还记得property吗?之前有个例子里,在类里定义好方法后,再用property就可以通过属性设置属性 先看一个普通的类 当我们设置property属性后: 但其实你发现了,其实使用property与否并没有什么两样的,目前确实是这样,在前…
一.今日内容总结 1.反射 使用字符串数据类型的变量名来操作一个变量的值. #使用反射获取某个命名空间中的值, #需要 #有一个变量指向这个命名空间 #字符串数据类型的名字 #再使用getattr获取值, #如果变量能直接获取结果 #如果是函数,只能拿到内存地址,加上括号就是执行 #使用类名反射: 静态属性.类方法.静态方法 #使用对象名反射: 对象属性.绑定对象方法 #使用模块名反射: 变量.函数.类 #在自己所在文件中反射全局变量: getattr(sys.modules[__name__]…