Python 类 setattr、getattr、hasattr 的使用
版本 Python 33
#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")
运行结果:
实例 Employee 类的第一个对象 Xiaoxiao Xiaoxiao 是否存在age属性: True Name : Xiaoxiao Salary: 2000 Age: 21 实例 Employee 类的第二个对象 Tiny Tiny 是否存在age属性: False Name : Tiny Salary: 5000 Age: not find