文档章节

怎么判断 Python 对象是否包含某个属性?

python-yzw
 python-yzw
发布于 2017/02/16 14:18
字数 146
阅读 122
收藏 0

方法一:通过异常捕捉来实现逻辑

class FooClass:pass

k = FooClass()
try:
    #do some thing you need
    print k.att
except AttributeError as e:
    #error: has not attribute
    pass 

方法二:调用hasattr方法

hasattr(object, name)
说明:判断对象object是否包含名为name的特性(hasattr是通过调用getattr(ojbect, name)是否抛出异常来实现的)。
参数object:对象。
参数name:特性名称。

>>> hasattr(list, 'append')
True

>>> hasattr(list, 'add')
False

方法三:使用dir方法

objlist = dir(k)
if 'att' in objlist:
    #do some thing you need
    print k.att
else:
    #error: has not attribute
    pass

 

本文转载自:https://segmentfault.com/q/1010000000713465/a-1020000000713505

共有 人打赏支持
python-yzw
粉丝 3
博文 92
码字总数 43773
作品 0
深圳
程序员
私信 提问
Bottle 框架中的装饰器类和描述符应用

最近在阅读Python微型Web框架Bottle的源码,发现了Bottle中有一个既是装饰器类又是描述符的有趣实现。刚好这两个点是Python比较的难理解,又混合在一起,让代码有些晦涩难懂。但理解代码之后...

大数据之路
2012/09/23
0
0
【图论】Python [ numpy, pandas] 实现 基础能力以及基础算法 [ dfs bfs spfa ] 经过较为严格测试

版权 copyright :散哥[tjut],程坦[tju] 转载请联系;或者有想法的找我; 输入 有数据文件输入处理部分,有比较清楚的结果输出 实现的功能 add_node 添加点, remove_node 删除点, add_ed...

散人lins
前天
0
0
Python面向对象之运算符重载

运算符重载只是意味着在类方法中拦截内置的操作,也就是说当类的实例出现在内置操作中,Python自动调用我们的方法,并且我们的方法的返回值变成了相应操作的结果。 关于重载的关键知识点: ...

bigstone2012
06/08
0
0
Python 的完美 json loads

为了对付表单提交时参数多和 json 结构复杂的情况,我写了一个名为 的处理函数来对请求对象递归调用 以期能够一次性将所有参数转化为更好用的 Python 类型。后来又发现了 web.py 的 对象,使...

lionets
2015/01/15
0
0
人生苦短:Python里的17个“超赞操作

人生苦短,我选Python”。那么,你真的掌握了Python吗? 1. 交换变量 有时候,当我们要交换两个变量的值时,一种常规的方法是创建一个临时变量,然后用它来进行交换。比如: # 输入 a = 5 b ...

糖宝lsh
08/17
0
0

没有更多内容

加载失败,请刷新页面

加载更多

centos7 部署Apache服务器

centos7 部署Apache服务器 置顶 2017年09月05日 09:12:49 师太,老衲把持不住了 阅读数:19700 飞翔科技 2017-09-04 16:24 Apache程序是目前拥有很高市场占有率的Web服务程序之一,其跨平台和...

linjin200
42分钟前
1
0
CENTOS7 搭建文件服务器:samba共享linux文件夹

一、安装samba: sudo yum install samba 二、配置samba共享目录 sudo vi /etc/samba/smb.conf [rpi_web_notebooks] comment = 树莓派jupyter notebook目录 path = /home/......

mbzhong
51分钟前
2
0
解析Nuxt.js Vue服务端渲染摸索

本篇文章主要介绍了详解Nuxt.js Vue服务端渲染摸索,写的十分的全面细致,具有一定的参考价值,对此有需要的朋友可以参考学习下。如有不足之处,欢迎批评指正。 Nuxt.js 十分简单易用。一个简...

前端攻城老湿
今天
4
0
深入解析React中的元素、组件、实例和节点

React 深入系列,深入讲解了React中的重点概念、特性和模式等,旨在帮助大家加深对React的理解,以及在项目中更加灵活地使用React。 React 中的元素、组件、实例和节点,是React中关系密切的...

前端攻城小牛
今天
6
0
菜鸟网络三面面经(java开发岗):Spring boot+JVM+线程池+中间件

一面 1、HaspMap底层原理?HaspTable和ConcurrentHashMap他们之间的相同点和不同点? 2、由上题提到锁的问题 3、MySQL的表锁&行锁&乐观锁&悲观锁,各自的使用场景 4、Java线程锁有哪些,各自的...

别打我会飞
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部