【Python】字典或者对象类型中键或者属性的获取与存在性判断

# 定义测试用对象A,字典B
class A(object):
length = 10

B ={"length":10}

# 判断对象是否含有某种属性
# 推荐这种方式,更Pythonic
try:
x = A.lengt
except AttributeError:
print("does not have {}".format("lengt"))

# 这种low一点
if "leng" in dir(A):
print(A.length)
else:
print("does not have {}")

# 或者这种方式
try:
x = getattr(A,"length")
except AttributeError:
print("does not have {}".format("lengt"))

# 判断字典是否具有某个键:
try:
x = B[‘ssss‘]
except KeyError:
print("Not have")

# 或者
if x in x.keys():
do something
# 或者
if x.get(‘gridman‘):
do something
else
print("Not have")

# 获取属性的方式
# 对象
print(getattr(A,"length"))
print(A.length)

print(B.get("length","if not have return DefaultValue"))
print(B[‘length‘])

原文地址:http://blog.51cto.com/l0vesql/2312725

时间: 2024-10-11 03:17:57

【Python】字典或者对象类型中键或者属性的获取与存在性判断的相关文章

<Python内置对象类型>

核心数字类型: 数字:int,long,float,complex,bool 字符:str,unicode 列表:list 字典:dict 元组:tuple 文件:file 其他类型:集合(set),frozenset,类型,None 其他文件类工具:pipes,fifos,sockets. 类型转换: str(),repr()或format():将非字符型数据转换成字符: int():转换为整数 float():转换为浮点数 list(x):可以把字符串x转换为列表, tuple(x):将字符

8.python之面相对象part.2(特殊属性,类方法,静态方法)

一.关于特殊属性(property). 接着上一篇文章继续说,如果想调用python中一个对象的属性,直接使用类或者对象名称在后面加.点然后写上属性名称就可以跳用这个类或者对象的属性了,比如说像下面这样. class person: def __init__(self,career): self.career = career ayumi = person(career="diva") print ayumi.career #ayumi是实例化出来的一个对象后面加.点,后面接属性名,就

8.python之面相对象part.8(__slots__属性)

一.__slots__属性有什么作用?为什么要有__slots__属性. 首先来说一说__slots__是什么,__slots__是一个类变量,它里面的值可以是字符串,可以是列表,可以是元组.(如果__slots__这个属性的值为一个字符串,那么意为着这个类生成的对象,只能有一个属性). 那么为什么要用__slots__属性呢? 关于这个问题还要从每个对象的__dict__属性开始说起. 当使用.点来访问属性本质就是在访问类或者对象的__dict__属性字典(类的字典是共享的,而每个实例的是独立

【python】核心对象类型

1 python是动态类型.强类型语言 动态类型:不需要提前声明变量类型,变量在代码运行的时候进行创建 强类型:不允许不同类变量进行相关操作(除非强制类型转化) 2 数字 2.1> 常见内置函数(存在于built_in命名空间) pow(2,4) ==> 16 // 幂运算 abs(-1) ==> 1 // 绝对值 int.oct.hex.bin // ×××.八进制.十六进制.二进制 random.random() // 生成随机数 random.randint(1,10) // 生成

python 字典,元组,对象,数组取值方法

def create(self,cr,uid,vals,context=None): if context is None: context ={} if vals.get('name','/')=='/': vals['name']=self.pool.get('ir.sequence').get(cr,uid,'sale.origin') or '/' ctx=dict(context or {},mail_create_nolog=True) #如果存在这个字段 则不处理 反之 删除本元素

python 字典转对象

class DictToStruct:     def __init__(self, **entries):         self.__dict__.update(entries) struct = DictToStruct(**temp) 原文地址:http://blog.51cto.com/chenxiaolong/2154983

javascript 从对象数组中 按字段/属性取最大值或最小值

var array=[ { "index_id": 119, "area_id": "18335623", "name": "满意度", "value": "100" }, { "index_id": 119, "area_id": "18335624", "name": "满意

Webkit IDL中自定义[命名]属性的获取(Getter)以及设置(Setter)函数

一.自定义命名属性的获取(Getter)以及设置(Setter)函数: [CustomNamedGetter](i), [CustomNamedSetter](i) 命名属性的W3C链接如下:?The spec of named properties (注意,下面描述的webkit行为和W3C的规范是不同的) 总结: [CustomNamedGetter] 或者 [CustomNamedSetter] 允许你为命名属性的getter或者setter编写自己的绑定函数. 用法如下: [ Custo

Python对象类型

Python程序可以分解为模块.语句.表达式以及对象,如下所示: 程序由模块构成 模块包含语句 语句包含表达式 表达式建立并出口对象 一.Python类型的介绍: 1.1 为什么使用内置类型 Python提供了强大的对象类型作为语言的组成部分,事实上,除非有内置类型无法提供的特殊对象要处理,最好总是使用内置对象而不是使用自己的实现.下面是其原因: 内置对象使程序更容易编写: 对于简单的任务,内置类型往往能够表现问题领域的所有结构.例如,集合(列表)和搜索表(字典)可以马上使用它们,仅使用pyth