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

还可以通过底层的属性字典对其进行修改,但是不要这样做

原文地址:https://www.cnblogs.com/June-King/p/10596201.html