首页 python基础教程 Python类属性和对象属性的区别
pay pay

Python类属性和对象属性的区别

日期: 2021年12月2日 03:25
栏目: python基础教程
阅读: 163
作者: python自学网

摘要: 类属性和对象属性在前面的几节课中都讲解过了,这一节课我们在来讲一下类属性和对象属性的区别和一些功能设置。

类属性和对象属性在前面的几节课中都讲解过了,这一节课我们在来讲一下类属性和对象属性的区别和一些功能设置。老规矩,先创建一个类和实例化一个对象。

class Person:  # 类属性属于只读属性
    age = 18
    name = 'Tom'

person = Person()  # 对象属性可变
person.age = 22
person.name = 'jerry'

1.类属性和对象属性的区别

# 验证对象属性可变
print(person.__dict__)  # {'age': 22, 'name': 'jerry'}
person.__dict__ = {'age': 22, 'name': 'jerry', 'top': 180}  # 直接从属性字典中来修改或者增加属性
print(person.top)  # 180
# 验证对象属性只读
print(Person.__dict__)
Person.__dict__ = {'age': 18, 'name': 'Tom', 'top': 190}
print(Person.top)  # AttributeError: attribute '__dict__' of 'type' objects is not writable:类属性不可写入
Person.__dict__['age'] = 190  # TypeError: 'mappingproxy' object does not support item assignment:也是不支持元素赋值

2.类属性被所有对象共享

class Man:
    age = 19
    name = '小明'

man1 = Man()
print(man1.age)
man1.age = 20
man2 = Man()
print(man2.age)

3.对象属性限制添加功能

class Woman:
    __slots__ = ['age', 'name']  # 限制对象中只能添加这两个对象属性
    pass

 

目录
回顶部