码迷,mamicode.com
首页 > 其他好文 > 详细

开笔了,就写一下,hasattr,getattr,setattr。

时间:2019-11-03 10:56:16      阅读:102      评论:0      收藏:0      [点我收藏+]

标签:set   简单的   dia   def   get   pytho   div   ipython   cal   

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

 

以前经常写过,写成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可以向对象添加属性,还可以修改里面的属性,具体操作还是比较简单的。

开笔了,就写一下,hasattr,getattr,setattr。

标签:set   简单的   dia   def   get   pytho   div   ipython   cal   

原文地址:https://www.cnblogs.com/sidianok/p/11785031.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!