Python 类 setattr、getattr、hasattr 的使用

转载 2015年11月18日 12:52:28
#coding=utf-8
class Employee:
  '所有员工的基类'
  empCount = 0
  def __init__(self, name, salary):
    self.name = name
    self.salary = salary
    Employee.empCount += 1
  def displayCount(self):
    print ("Total Employee %d" % Employee.empCount)
  def displayEmployee(self):
    print ("Name : ", self.name,  "\nSalary: ", self.salary)
Xiaoxiao = Employee('Xiaoxiao', 2000)
setattr(Xiaoxiao, 'age', 21)
Tiny = Employee("Tiny", 5000)
#setattr(Tiny, 'age', 23)
print ("实例 Employee 类的第一个对象 Xiaoxiao ");
print ('Xiaoxiao 是否存在age属性:',hasattr(Xiaoxiao,'age'))
Xiaoxiao.displayEmployee(); 
print("Age: ",getattr(Xiaoxiao,'age', 'not find'));
print ("\n")
print ("实例 Employee 类的第二个对象 Tiny")
print ('Tiny 是否存在age属性:',hasattr(Tiny,'age'))
Tiny.displayEmployee()
print("Age: ",getattr(Tiny,'age', 'not find'));
print ("\n")
print ("Total Employee number: %d" % Employee.empCount)
print ("\n")

继承的子类,type也属于父类

isinstance 用来判断类型

hasattr(obj,attr)判断该类是否有此属性

getattr(obj,attr)获取该类的此属性

setattr(obj,attr,new_value)设置该类的某属性为多少


python hasattr() getattr() setattr()函数的使用

hasattr(object,name):用于判断一个对象里中是否存在name这一特性.由测试结果可知,对象a里包含特性name和方法greet(),所以输出True,而不包含特性age,所以hasa...

Python的hasattr() getattr() setattr() 函数使用方法详解

岑宇 历经苦难而不厌,此乃阿修罗之道! 博客园首页新随笔联系订阅管理 随笔 - 68  文章 - 2  评论 - 0 Python的hasattr() getattr(...

Python的getattr(),setattr(),delattr(),hasattr()

getattr()函数是Python自省的核心函数,具体使用大体如下: 获取对象引用getattr Getattr用于返回一个对象属性,或者方法 class A:        def _...

python 中getattr(object,name,default),setattr(object,name,default),hasattr(),delattr()

getattr()函数是Python自省的核心函数,具体使用大体如下: 获取对象引用getattr Getattr用于返回一个对象属性,或者方法 class A:        def __...

python __setattr__, __getattr__, __delattr__,__getattribute__

参考资料           __setattr__、__getattr__和__delattr__以及__getattribute__可以拦截对对象属性的访问;        >>> s =...

python类中的__call__、__init__、__getattr__、__setattr__、__setattr__详解

python类中的__call__、__init__、__getattr__、__setattr__、__setattr__详解

python __getattr__ 和 __setattr__方法、属性私有化

__getattr__方法 拦截点号运算。当对未定义的属性名称和实例进行点号运算时,就会用属性名作为字符串调用这个方法。如果继承树可以找到该属性,则不调用此方法。 class empty: def...

__dict__, __getattr__和__setattr__

dict: python的class对象是通过builtin object--__dict__来储存其他class成员的value或者信息。 getattr: class的builtin成...

__getattr__,__setattr__,__delattr__与__getattribute__

简要记录一下今天学到的,不写写心里慌先来看看书上对于四个内置方法的描述:​ __getattribute__(self, name): 当特性name被访问时自动被调用(只能在新式类中使用)​ ...
  • xykaiku
  • xykaiku
  • 2017年07月13日 11:35
  • 88

【python】使用__getattr__动态调用函数

最近做的一个软件用到了python的新浪api,在它的源码中发现了一个很神奇的地方:在类的实例中可以动态调用之前未定义的函数。 先看一段代码: #-*- coding:utf8 -*- ...
  • SK_GOD
  • SK_GOD
  • 2012年07月05日 01:45
  • 1103
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Python 类 setattr、getattr、hasattr 的使用
举报原因:
原因补充:

(最多只允许输入30个字)