反射(hasattr和setattr和delattr)】的更多相关文章

login.py #!/usr/bin/dev python# coding:utf-8 def index(): print u'欢迎访问xx网站首页' def login(): print u'登录成功' def logout(): print u'退出登录' class Person(object):#新式类 def __init__(self): pass def info(self): print u'我是Person类的info的方法' #!/usr/bin/env python#…
6.23 自我总结 面向对象的高阶 1.isinstance/type/issubclass 1.type 显示对象的类,但是不会显示他的父类 2.isinstance 会显示的对象的类,也会去找对象的父类,填写参数是对象,类isinstance(对象,类)如果对象属于后面的类会报Ture,反之False 3.issubclass 与isinstance 相似不过他填写的参数是类与类 4.总结 来说:type(对象)不会认为子类是一种父类类型:isinstance(对象,类)会认为子类是一种父类…
反射(hasattr和setattr和delattr) 一.反射在类中的使用 反射就是通过字符串来操作类或者对象的属性, 反射本质就是在使用内置函数,其中反射有以下四个内置函数: hasattr:通过字符串,判断一个方法是否存在与这个类中 getattr: 根据字符串去获取obj对象里的对应的方法的内存地址,加"()"括号即可执行(查找属性返回属性值,查找函数返回函数地址) setattr: 通过setattr将外部的一个函数绑定到实例中(通过字符串来设置属性或方法) delattr:…
一.今日内容总结 1.反射 使用字符串数据类型的变量名来操作一个变量的值. #使用反射获取某个命名空间中的值, #需要 #有一个变量指向这个命名空间 #字符串数据类型的名字 #再使用getattr获取值, #如果变量能直接获取结果 #如果是函数,只能拿到内存地址,加上括号就是执行 #使用类名反射: 静态属性.类方法.静态方法 #使用对象名反射: 对象属性.绑定对象方法 #使用模块名反射: 变量.函数.类 #在自己所在文件中反射全局变量: getattr(sys.modules[__name__]…
通过字符串映射或修改程序运行时的状态.属性.方法, 有以下4个方法 getattr(object, name_str, default=None) 根据字符串name_str去获取obj对象里的方法内存地址hasattr(object,name_str) 判断一个对象里是否有对应的name_str字符串的方法setattr(obj, y, v)这个相当于obj.y=vdelattr(x, y) class Foo(object): def __init__(self): self.name =…
反射(hasattr,getattr,setattr,delattr) 反射在类中的使用 反射就是通过字符串来操作类或者对象的属性 反射本质就是在使用内置函数,其中反射有四个内置函数: hasattr:判断一个方法是否存在于这个类中 getattr:根据字符串去过去obj对象里的对应的方法的内存地址,加'()'括号即可执行 setattr:通过setattr将外部的一个函数绑定到实例中 delattr:删除一个实例或者类中的方法 class People: country = 'China' d…
通过一个实例来说明,这四个函数的用法: 首先一个如下的一个简单的类: class Animal(object): def __init__(self,name, zone): self.name = name self.zone = zone def bark(self): print("The %s id barking..." % self.name) hasattr(object, name)判断一个对象里面是否有name属性或者name方法,返回BOOL值,有name特性返回T…
反射 : 是用字符串类型的名字 去操作 变量 相比于用eval('print(name)') 留有 安全隐患 反射 就没有安全问题 hasattr 语法: hasattr(object, name)object可以是对象,类,模块,当前Py文件.name是一个给字符串数据类型,可以是变量(属性),函数(方法).如果name在object中存在,则返回Ture,否则返回False. getattr与hasattr语法相同,返回的结果是对应name的值或函数. 反射对象的方法 a.func() re…
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…
当用户输入字符串时,不能够用来运行程序 1.使用 hasattr 找出输入的字符串是否在程序内 2.使用 getattr 返回找出字符串对应的函数的内存地址或者变量 3. 使用setattr 添加新的函数,或者改变已有的程序的实例变量或类变量 import easygui def bulk(self): print('%s is talking'%self.name) class Dog(object): def __init__(self,name): self.name = name def…