当用户输入字符串时,不能够用来运行程序 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…
6.23 自我总结 面向对象的高阶 1.isinstance/type/issubclass 1.type 显示对象的类,但是不会显示他的父类 2.isinstance 会显示的对象的类,也会去找对象的父类,填写参数是对象,类isinstance(对象,类)如果对象属于后面的类会报Ture,反之False 3.issubclass 与isinstance 相似不过他填写的参数是类与类 4.总结 来说:type(对象)不会认为子类是一种父类类型:isinstance(对象,类)会认为子类是一种父类…
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…
反射 : 是用字符串类型的名字 去操作 变量 相比于用eval('print(name)') 留有 安全隐患 反射 就没有安全问题 hasattr 语法: hasattr(object, name)object可以是对象,类,模块,当前Py文件.name是一个给字符串数据类型,可以是变量(属性),函数(方法).如果name在object中存在,则返回Ture,否则返回False. getattr与hasattr语法相同,返回的结果是对应name的值或函数. 反射对象的方法 a.func() re…
Python的hasattr() getattr() setattr() 函数使用方法详解 hasattr(object, name)判断object中有没有一个name字符串对应的方法或属性,返回BOOL值,有name特性返回True, 否则返回False.需要注意的是name要用括号括起来 1 >>> class test(): 2 ... name="xiaohua" 3 ... def run(self): 4 ... return "HelloWo…
类反射的四个基本函数 hasattr getattr setattr delattr #反射 class BlackMedium: feature = 'Ugly' def __init__(self,name, addr): self.name = name self.addr = addr def sell_house(self): print('[%s]正在卖房子,xx才买呢'%self.name) def rent_house(self): print('[%s]正在卖房子,xx才租呢'…
isinstance   是 python中的内置函数 , isinstance()用来判断一个函数是不是一个类型 issubclass  是python 中的内置函数,  用来一个类A是不是另外一个类B的子类   issubclass(子类,父类) class Foo: pass obj=Foo() print(isinstance(obj,Foo))# 判断实例化的foo是不是这个类 #判断结果为True print(isinstance(obj,Foo)) 它就等同于 ======>>&…
Python的hasattr() getattr() setattr() 函数使用方法详解 hasattr(object, name)判断一个对象里面是否有name属性或者name方法,返回BOOL值,有name特性返回True, 否则返回False.需要注意的是name要用括号括起来 1 >>> class test(): 2 ... name="xiaohua" 3 ... def run(self): 4 ... return "HelloWord&q…
Python的hasattr() getattr() setattr() 函数使用方法详解   感谢作者 ---> 原文链接 hasattr(object, name) 判断一个对象里面是否有name属性或者name方法,返回BOOL值,有name特性返回True, 否则返回False.需要注意的是name要用括号括起来 1 >>> class test(): 2 ... name="xiaohua" 3 ... def run(self): 4 ... ret…
1. 元数据和反射概念: 有关程序及其类型的数据成为元数据(metadata),他保存在程序的程序集中. 反射这个词儿听起来比较陌生.程序在运行时,可以查看其它程序集或其本身的元数据.一个运行的程序查看本身的元数据的行为成为反射(reflection) 对象浏览器是显示元数据的程序的的一个示例.他可以读取程序集,然后显示所包含的类型及类型的所有特性和成员. 2.举例说明: 比如:我们现在有这样一个需求,已有三个函数fun1,fun2,fun3这三个函数,我们都找到如果我们想调用其中某个函数的时候…