博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Python】对象属性操作内置函数(hasattr/getattr...)
阅读量:4146 次
发布时间:2019-05-25

本文共 1399 字,大约阅读时间需要 4 分钟。

文章目录

Python对象属性操作的方法包括hasattr、getattr、setattr和delattr;
实例化的对象中属性是只读的,无法使用delattr执行删除操作。

hasattr

用法:

hasattr(obj, name, /)
返回obj中是否存在name属性,存在返回True,反之返回否;
这是通过调用getattr(obj,name)并捕获AttributeError来完成的
实例演示:

#!/usr/bin/python# -*- coding: UTF-8 -*-class X(object):    y = 10    def func1(self, num):       print("input num=%s" % num)x = X()print(hasattr(x, 'y'))      #存在返回Trueprint(hasattr(X, 'func2'))  #不存在返回False

getattr

用法:

getattr(object, name[, default]) -> value

获取对象已命名的属性;

getattr(x, ‘y’)相当于x.y;
default值可选,当对象的属性不存在时返回默认值。
实例演示:

#!/usr/bin/python# -*- coding: UTF-8 -*-class X(object):    y = 10    def func1(self, num):       print("input num=%s" % num)x = X()print(x.y)print(getattr(x,'y'))print(getattr(x,'z', 1))getattr(x, 'func1')(69)     #相当于x.func1(69)getattr(x,'z')      #属性z不存在且没有定义缺省值,触发AttributeError

setattr

setattr(obj, name, value, /)

用法:
设置obj中的name为value,name若不存在则新增name属性。
setattr(x, ‘y’, v) 相当于x.y = v
实例演示:

#!/usr/bin/python# -*- coding: UTF-8 -*-class X(object):    y = 10x = X()setattr(X, 'y', 20)print(X.y)    #20print(x.y)    #20setattr(x, 'y', 25)print(X.y)    #20print(x.y)    #25

delattr

用法:

delattr(obj, name, /)
删除obj中的name属性
delattr(x, ‘y’) 相当于del x.y
实例演示:

#!/usr/bin/python# -*- coding: UTF-8 -*-class X(object):    y = 10    z = 15x = X()delattr(X, 'y')print(hasattr(x, 'y'))  # Falsedelattr(x, 'z')   #触发AttributeError: 'X' object attribute 'z' is read-only

转载地址:http://wyiti.baihongyu.com/

你可能感兴趣的文章
【Python】学习笔记——-7.0、面向对象编程
查看>>
【Python】学习笔记——-7.2、访问限制
查看>>
【Python】学习笔记——-7.3、继承和多态
查看>>
【Python】学习笔记——-7.5、实例属性和类属性
查看>>
git中文安装教程
查看>>
虚拟机 CentOS7/RedHat7/OracleLinux7 配置静态IP地址 Ping 物理机和互联网
查看>>
Jackson Tree Model Example
查看>>
常用js收集
查看>>
如何防止sql注入
查看>>
springmvc传值
查看>>
在Eclipse中查看Android源码
查看>>
Android使用webservice客户端实例
查看>>
[转]C语言printf
查看>>
C 语言学习 --设置文本框内容及进制转换
查看>>
C 语言 学习---判断文本框取得的数是否是整数
查看>>
C 语言 学习---ComboBox相关、简单计算器
查看>>
C 语言 学习---ComboBox相关、简易“假”管理系统
查看>>
C 语言 学习---回调、时间定时更新程序
查看>>
C 语言 学习---复选框及列表框的使用
查看>>
第十一章 - 直接内存
查看>>