zoukankan      html  css  js  c++  java
  • 开笔了,就写一下,hasattr,getattr,setattr。

    这三个函数是来判断对象里面是否有这个属性或者方法(方法也可以成为可调用的属性)

    以前经常写过,写成xx.getattr.....记住是函数,直接命令顶头开始写。

    In [23]: class Demo: 
        ...:     def __init__(self): 
        ...:         self.name = 'sidian' 
        ...:     def out_name(self): 
        ...:         return self.name 
        ...:                                                                                                         
    
    In [24]:                                                                                                         
    
    In [24]: dd = Demo()                                                                                             
    
    In [25]: hasattr(dd,'name')                                                                                      
    Out[25]: True
    
    In [26]: hasattr(dd,'out_name')                                                                                  
    Out[26]: True
    
    In [27]: hasattr(dd,'age')                                                                                       
    Out[27]: False
    

     首先介绍hasatr,这个是判断对象是否有这个属性,返回的是Boll值,True或者False。

    In [30]: getattr(dd, 'name')                                                                                     
    Out[30]: 'sidian'
    
    In [31]: getattr(dd, 'out_name')                                                                                 
    Out[31]: <bound method Demo.out_name of <__main__.Demo object at 0x10a4a9290>>
    
    In [32]: getattr(dd, 'out')                                                                                      
    ---------------------------------------------------------------------------
    AttributeError                            Traceback (most recent call last)
    <ipython-input-32-de58a5a0d8df> in <module>
    ----> 1 getattr(dd, 'out')
    
    In [35]: getattr(dd, 'out','ok')                                                                                 
    Out[35]: 'ok'
    

     接下来测试的是getattr,这个名字虽然有get但脾气一点也不好,但他取不出对象里面的属性时,直接死给你看,所以可以添加第三个参数,但取不到输出第三个参数。

    In [37]: setattr(bb,'age',18)                                                                                    
    
    In [38]: setattr(bb,'name','wangba')                                                                             
    
    In [39]: getattr(bb,'age')                                                                                       
    Out[39]: 18
    
    In [40]: getattr(bb,'name')                                                                                      
    Out[40]: 'wangba'
    

     setattr可以向对象添加属性,还可以修改里面的属性,具体操作还是比较简单的。

  • 相关阅读:
    CentOS7_装机软件推荐
    http://www.osyunwei.com/archives/4788.html
    SQL经典面试题集锦
    异步方式
    webwxgetcontact 获取的是通讯录里的群或好友的信息
    perl 微信取自己的ID
    perl weixin 发消息接口 webwxsendmsg
    Invalid project description.
    运行期间id是不变的
    关于微信 init接口返回的Count和webwxbatchgetcontact post请求的参数Count
  • 原文地址:https://www.cnblogs.com/sidianok/p/11785031.html
Copyright © 2011-2022 走看看