python操作对象属性

getattr

getattr(a,'b')的作用就和a.b是一样的。那么这个内建函数有什么作用呢,最方便的无疑是使用它来实现工厂方法(Factory Method)模式。

参数说明:
object:对象的实例
name:字符串,对象的成员函数的名字或者成员变量
default:当对象中没有该属性时,返回的默认值异常:当没有该属性并且没有默认的返回值时,抛出"AttrbuteError"。

异常安全的写法:

主要有两种异常
AttributeError: 对象中没有该属性

try:
    func = getattr(obj,"method")
except AttributeError:
    ...... deal
else:
    result = func(args)
// 或指定默认返回值
func = getattr(obj,"method", None)
if func:
    func(args)

TypeError: 不可调用

func = getattr(obj,"method", None)]
if callable(func):
    func(args)

setattr:

setattr()表示你可以通过该方法,给对象添加或者修改指定的属性。setattr()方法接受3个参数:setattr(对象,属性,属性的值)

delattr:

delattr()表示你可以通过该方法,删除指定的对象属性
delattr方法接受2个参数:delattr(对象,属性)

下面是代码的应用

#encoding=utf-8
class student(object):
    def __init__(self,name,age):
        self.name = name
        self.age = ages
info = student('xiaoming',32)
print sinfo.name
setattr(sinfo,'python','haha')
##和:sinfo.python = 'haha' 效果一样
print sinfo.__dict__
delattr(sinfo,'python')
##和del sinfo.python效果一样
print sinfo.__dict__
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 11,242评论 6 13
  • 1. abs(x) abs()函数返回数字(可为普通型、长整型或浮点型)的绝对值。如果给出复数,返回值就是该复数的...
    TENG书阅读 434评论 0 0
  • 内置函数Python解释器内置了许多功能和类型,总是可用的。他们是按字母顺序列在这里。 abs(x)返回一个数的绝...
    uangianlap阅读 1,285评论 0 0
  • 1. abs(x) abs()函数返回数字(可为普通型、长整型或浮点型)的绝对值。如果给出复数,返回值就是该复数的...
    chen_000阅读 421评论 0 0
  • 第一次接触思维导图是在2013年,当时在天朝大概还算比较新兴的物事,不像现在被各种培训课推广刷屏,我是查速记资料的...
    王滚滚打小怪兽阅读 245评论 0 0