coding:utf-8
类变量:由类名调用的变量称为类变量。
实例变量:只有实例对象才能调用的变量,称为实例变量。对象的属性也可以称为实例变量。
实例变量是在函数内定义,类变量是在函数体外进行定义。
class Employee(object):
"""docstring for Employee"""
# 声明一个类变量,记录员工总人数
total_employee_number = 0
def __init__(self, name, salay):
self.name = name
self.salay = salay
# 要确认一个对象是否被创建出来,只需要查看__init__()函数是否执行了。函数执行了,肯定是创建对象了。
Employee.total_employee_number += 1
def get_total_number(self):
print '员工总人数:',Employee.total_employee_number
e1 = Employee('张三', 6000)
e2 = Employee('李四', 8000)
类变量的值在各个对象之间数据是共享的。类变量只初始化一次。
有关对象的一些操作
动态给某一个对象添加属性
e1.age = 34
e1.sex = 'male'
实例变量的值在各个对象之间是不共享的,只属于某一个对象。
print e1.age
if hasattr(e2, 'age'):
print e2.age
else:
print 'e2对象没有"age"属性'
判断一个对象是否拥有某一个属性的方法
hasattr(对象名, 属性名),函数返回bool值
if hasattr(e1, 'age'):
# 存在
# 删除一个对象的属性
del e1.age
getattr():用于获取对应的一个属性值
getattr(对象名,属性名,属性默认值): 当获取的属性存在时,则直接取出属性值;如果获取的属性不存在,可以返回默认值,防止出现AttributeError异常。
print getattr(e1, 'age', '100')
setattr(): 用于给一个对象添加属性值,函数没有返回值。
setattr(e1, 'height', '170')
print e1.height
如果setattr()设置属性已经存在,则去修改属性的值。
setattr(e1, 'height', '160')
print e1.height
delattr(): 用于删除对象的一个属性
delattr(e1, 'height')
print e1.height