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 attr():
    def fun(x):
        return x%2==1
if __name__ == '__main__':
    attr=attr()
  print  hasattr(attr,'fun')
  setattr(attr,'x',4)
  print attr.x

也可以使用该方式,动态创建方法

def add(x,y):
    return x+y
class attr():
    def fun(x):
        return x%2==1
if __name__ == '__main__':
    attr=attr()
    print  hasattr(attr,'fun')
    setattr(attr,'add',add) 注意,这里的add函数不能添加(),几不能谢伟add()
    print hasattr(attr,'add')返回true
    print attr.add(4,5) 返回9

getattr(object,name,default)

获取对象的属性或者方法,如果存在返回,如果不存在,返回默认值,默认值是可选的

如果返回的对象是方法,返回方法的内存地址,如果要运行,可以在后面添加()

def add(x,y):
    return x+y
class attr():
    def fun(x):
        return x%2==1
if __name__ == '__main__':
    attr=attr()
   
print getattr(attr,'fun')返回fun的内存地址
print getattr(attr,'name','hello')返回hello,但不创建name属性
 

defattr(object,name)

用来删除对象的属性

def add(x,y):
    return x+y
class attr():
    def fun(x):
        return x%2==1
if __name__ == '__main__':
    attr=attr()
    print  hasattr(attr,'fun')
    setattr(attr,'x',4)
    print hasattr(attr,'x')
    #print attr.add(4,5)
   
print getattr(attr,'fun')
    delattr(attr,'x') 删除了x属性
    print hasattr(attr, 'x')返回为false

删除在对象中已经定义好的属性,会报错,可以删除动态添加的属性

python动态函数hasattr,getattr,setattr,delattr的更多相关文章

  1. python 内置函数的补充 isinstance,issubclass, hasattr ,getattr, setattr, delattr,str,del 用法,以及元类

    isinstance   是 python中的内置函数 , isinstance()用来判断一个函数是不是一个类型 issubclass  是python 中的内置函数,  用来一个类A是不是另外一个 ...

  2. isinstance/type/issubclass的用法,反射(hasattr,getattr,setattr,delattr)

    6.23 自我总结 面向对象的高阶 1.isinstance/type/issubclass 1.type 显示对象的类,但是不会显示他的父类 2.isinstance 会显示的对象的类,也会去找对象 ...

  3. Python hasattr,getattr,setattr,delattr

    #!/usr/bin/env python # -*- coding:utf-8 -*- # 作者:Presley # 邮箱:1209989516@qq.com # 时间:2018-11-04 # 反 ...

  4. python反射hasattr getattr setattr delattr

    反射 : 是用字符串类型的名字 去操作 变量 相比于用eval('print(name)') 留有 安全隐患 反射 就没有安全问题 hasattr 语法: hasattr(object, name)o ...

  5. Python标准库:内置函数hasattr() getattr() setattr() 函数使用方法详解

    hasattr(object, name) 本函数是用来判断对象object的属性(name表示)是否存在.如果属性(name表示)存在,则返回True,否则返回False.参数object是一个对象 ...

  6. hasattr getattr setattr delattr --> (反射)

    class Room: def __init__(self,name): self.name = name def big_room(self): print('bigroot') R = Room( ...

  7. 反射hasattr; getattr; setattr; delattr

    hasattr(obj,name_str):#判断一个对象obj里面是否有对应的name_str字符串的方法,返回True或者Falsegetattr(obj,name_str):#根据字符串去获取对 ...

  8. Python的getattr(),setattr(),delattr(),hasattr()及类内建__getattr__应用

    @Python的getattr(),setattr(),delattr(),hasattr() 先转一篇博文,参考.最后再给出一个例子 getattr()函数是Python自省的核心函数,具体使用大体 ...

  9. 【转】Python的hasattr() getattr() setattr() 函数使用方法详解

    Python的hasattr() getattr() setattr() 函数使用方法详解 hasattr(object, name)判断一个对象里面是否有name属性或者name方法,返回BOOL值 ...

随机推荐

  1. 在intent-filter中的配置

    1.scheme约束和mimetype的数据类型,这些都可以自己去定义. 2.但是由于在MainActivity却不能直接将这两个参数分开来写,例如setdata和settype,这样会互相删除. 因 ...

  2. 51Nod:完美字符串

    约翰认为字符串的完美度等于它里面所有字母的完美度之和.每个字母的完美度可以由你来分配,不同字母的完美度不同,分别对应一个1-26之间的整数. 约翰不在乎字母大小写.(也就是说字母F和f)的完美度相同. ...

  3. 【知识笔记】Debugging

    一.启动调试出现 无法启动程序 当前状态中是非法 VS工具--选项--调试--常规--启用asp.net的JavaScript调试(chrome和ie)去掉勾选 二.web.config中<cu ...

  4. ppt正文排版

  5. Hibernate有五大核心接口,分别是:Session Transaction Query SessionFactoryConfiguration

    Session接口: Session接口 Session 接口对于Hibernate 开发人员来说是一个最重要的接口.然而在Hibernate中,实例化的Session是一个轻量级的类,创建和销毁它都 ...

  6. socat 简单试用

    socat的主要特点就是在两个数据流之间建立通道:且支持众多协议和链接方式: ip, tcp, udp, ipv6, pipe,exec,system,open,proxy,openssl,socke ...

  7. hadoop之 心跳时间与冗余快清除

    1.Hadoop datanode节点超时时间设置 datanode进程死亡或者网络故障造成datanode无法与namenode通信,namenode不会立即把该节点判定为死亡,要经过一段时间,这段 ...

  8. C#读取Mysql blob字段 (转帖)

    http://blog.csdn.net/config_man/article/details/6123191 开发环境:Windows XP Professional SP3.VS2008.Winf ...

  9. ASP.NET网站权限设计实现(一)——使用PowerDesigner进行数据库设计

    这里用PowerDesigner做一个初步的设计,后面可能会有修改. 1.启动PowerDesigner新建物理数据模型 2.工具栏 3.新建表模型 4.添加第一张表,可以双击表或右键菜单打开下面窗口 ...

  10. PHP错误和异常处理

    1.错误报告级别: 错误E_ERROR; 警告 E_WARNING 注意 E_NOTICE 2.php.ini 中的配置 error_reporting=;  错误提示 一般设置为: error_re ...