一、初始化实例属性
1. 一般情况下,使用self.a=a来设置属性。例如:
class Person(object):
def __init__(self, name, gender, birth):
self.name = name
self.gender = gender
self.birth = birth
xiaoming = Person('Xiao Ming', 'Male', '1991-1-1')
print xiaoming.name
2. 当__init__方法可以接受关键字参数时,使用setattr(self, 'name', 'xxx') 来设置属性。例如:
class Person(object):
def __init__(self, name, gender, birth, **kw):
self.name = name
self.gender = gender
self.birth = birth
for k,v in kw.iteritems():
setattr(self, k, v)
xiaoming = Person('Xiao Ming', 'Male', '1991-1-1', job='student')
print xiaoming.name
print xiaoming.job
二、类属性
class Person(object):
address = 'Earth'
def __init__(self, name):
self.name = name
注:1)类属性可以直接访问(Person.address);
2)所有实例都可以访问到所属的类的属性;
3)每个实例各自拥有实例属性,互相独立,而类属性一旦改变,所有实例访问到的类属性就都变了。