原文:https://www.jb51.net/article/138363.htm hasattr()函数 hasattr()函数用于判断是否包含对应的属性 语法: hasattr(object,name) 参数: object--对象 name--字符串,属性名 返回值: 如果对象有该属性返回True,否则返回False 示例: class People: country='China' def __init__(self,name): self.name=name def people_i…
isinstance   是 python中的内置函数 , isinstance()用来判断一个函数是不是一个类型 issubclass  是python 中的内置函数,  用来一个类A是不是另外一个类B的子类   issubclass(子类,父类) class Foo: pass obj=Foo() print(isinstance(obj,Foo))# 判断实例化的foo是不是这个类 #判断结果为True print(isinstance(obj,Foo)) 它就等同于 ======>>&…
6.23 自我总结 面向对象的高阶 1.isinstance/type/issubclass 1.type 显示对象的类,但是不会显示他的父类 2.isinstance 会显示的对象的类,也会去找对象的父类,填写参数是对象,类isinstance(对象,类)如果对象属于后面的类会报Ture,反之False 3.issubclass 与isinstance 相似不过他填写的参数是类与类 4.总结 来说:type(对象)不会认为子类是一种父类类型:isinstance(对象,类)会认为子类是一种父类…
一.将子类赋值给父类 在C++中经常会出现数据类型的转换,比如 int-float等,这种转换的前提是编译器知道如何对数据进行取舍.类其实也是一种数据类型,也可以发生数据转换,但是这种转换只有在 子类-父类 之间才有意义.并且只能将子类赋值给父类,子类的对象赋值给父类的对象,子类的指针赋值给父类的指针,子类的引用赋值给父类的引用.这在C++中称为向上转型.相反的称为向下转型,但是向下转型有风险,本文只介绍向上转型. 1.1 将子类对象赋值给父类对象 下面我们通过一个具体地实例来看一下: clas…
#!/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 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…
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…
反射 : 是用字符串类型的名字 去操作 变量 相比于用eval('print(name)') 留有 安全隐患 反射 就没有安全问题 hasattr 语法: hasattr(object, name)object可以是对象,类,模块,当前Py文件.name是一个给字符串数据类型,可以是变量(属性),函数(方法).如果name在object中存在,则返回Ture,否则返回False. getattr与hasattr语法相同,返回的结果是对应name的值或函数. 反射对象的方法 a.func() re…
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…