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__

python getattrribute_python操作对象属性相关推荐

  1. 操作对象_DOM进阶——HTML属性操作(对象属性)

    上一节我们在"DOM基础"学习了对元素节点的操作,这两节介绍对属性节点的操作. 属性节点操作有两种方式,一种是使用"对象属性",另一种是"对象方法&q ...

  2. Python self,init,对象属性

    self关键字的作用 __init__初始化 # coding=utf-8 支持中文class Human(object):laugh = 'Ha'def show_laugh(self):print ...

  3. [转载] python如何删除对象属性_Python3基础 delattr 删除对象的属性

    参考链接: Python delattr() ? python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 conda : 4.5.1 ...

  4. python如何删除对象属性_如何优雅的删除对象中的指定属性?

    要优雅的话,使用 Lodash 的 omit 方法移除不要的属性: const object = { 'a': 1, 'b': '2', 'c': 3 }; const result = _.omit ...

  5. Python类与对象实验

    一.任务描述   本实验任务主要对Python类与对象进行一些基本操作,通过完成本实验任务,要求学生熟练掌握Python类与对象的关系,并对Python类与对象的基本操作进行整理并填写工作任务报告. ...

  6. java根据属性获取对象_java反射工具类--通过指定属性名,获取/设置对象属性值

    java对象通过点运算符操作对象属性的方式没法使用for,while等循环,此工具主要解决这一问题. 例如:有一对象包含属性有一定规律 obj1: { name1: "张三", a ...

  7. python 类属性和对象属性--定义和作用域

    类属性和对象属性定义 Python一切皆对象(object),每个对象都可能有多个属性(attribute).Python的属性有一套统一的管理方案. 对象的属性可能来自于其类定义,叫做类属性(cla ...

  8. python属性访问顺序_Python 对象属性的访问

    在 Python 中,一切皆对象.属性访问可以理解为是从一个已有的对象中获得另一个对象的方法.对象属性的访问涉及到对象的 __dict__ 属性.描述符等概念,以及 __getattribute__. ...

  9. python如何对一个属性或方法进行封装_python 类、对象、方法、属性

    在python中,一个对象的特征也称为属性(attribute).它所具有的行为也称为方法(method) 结论:对象=属性+方法 在python中,把具有相同属性和方法的对象归为一个类(class) ...

最新文章

  1. centos安装emqtt_benchmark
  2. 静电对于机电设备的影响
  3. 【Matlab】找到矩阵中每个连通域的最小值
  4. 3月上旬我国域名增长平稳 新增92059个域名
  5. 腾讯开源负责人许勇:未来开源计划重点是AI和服务小程序生态
  6. red linux安装mysql_RedHat下安装MySQL5.5
  7. 在web网页中正确使用图片格式
  8. 黑白棋游戏水平(2)--pytorch剪裁
  9. java生产消费线程小例子
  10. 【转载】对SVM的个人理解---浅显易懂
  11. 主力用计算机吸筹,通达信主力吸筹+主力轨迹副图源码 贴图
  12. iOS开发iPhone竖屏icon尺寸与启动页尺寸汇总
  13. 别让手机偷走你的大半生
  14. 全球及中国钢铁行业投资产量趋势及营销盈利模式研究报告2021版
  15. 微信语音java_java微信企业号开发之发送消息(文本、图片、语音)
  16. PS 曲线(改变图片不同的色彩效果)
  17. 2022卡塔尔世界杯赛程直播北京时间_足球世界杯对阵表图完整全部
  18. 分享 stormzhang的Andoid学习之路
  19. 十几套JavaWeb项目,拿去当毕业设计简直太爽了(源码)
  20. Storm - Trident

热门文章

  1. 均值滤波 中值滤波 高斯平滑滤波
  2. html中文段落,HTML 段落-JavaScript中文网-JavaScript教程资源分享门户
  3. java .listfiles_Java File.listFiles()
  4. python 调用函数 开销_Python函数调用非常慢
  5. Flex与Javascript交互
  6. float浮动,定位
  7. ECMA6--字符串/数组
  8. 清除浮动小记,兼容Ie6,7
  9. ubuntu16.04 编译出错:fatal error: SDL/SDL.h: No such file or directory
  10. hdu 3549 Flow Problem(最大流模板题)