python面向对象之类属性,实例属性
python中的属性分为类属性和实例属性,之前已经说过一些,这里主要是对类属性与实例属性的增删改查
首先是对类属性的增删改查,下面这个是对类属性的修改,在书写类时,已经对类属性occupation进行赋了初值student,
class Person(object):
occupation = 'student'
def __init__(self, name, gender, age):
self.name = name
self.gender = gender
self.age = age
print(Person.__dict__)
stu1 = Person('ajune', '男', 18)
stu1.occupation = 's' # 修改类属性,但仅在该实例中有作用
# Person.occupation = 's' # 修改类属性,凡是由该类实例化的对象均是此值
print(stu1.name, stu1.gender, stu1.age, stu1.occupation)
stu2 = Person('ajune', '男', 18)
print(stu2.name, stu2.gender, stu2.age, stu2.occupation) # 类属性occupation依旧是student
添加新的类属性
stu1 = Person('ajune', '男', 18)
Person.level = 's' # 类中本不存在level类属性,通过此语句可以添加类属性
print(stu1.name, stu1.gender, stu1.age, stu1.occupation, stu1.level)
查看类属性,说是查看还是和使用类属性一样
Person.level
删除类属性,通过关键字del 类名.类属性即可
del Person.level
以上的这些都只是对简单数据进行操作,那我们也可以为其添加成员函数,
def change(self):
print('变成成员函数')
Person.change = change
stu1.change()
实例属性
增加实例属性,依旧是之前的类,通过stu1实例添加sport实例属性
stu1.sport = 'basketball'
删除实例属性
del stu1.gender
修改实例属性
stu1.age = 19
还可以通过底层的属性字典对其进行修改,但是不要这样做