__slots__限制类动态的增加属性
正常情况下,当我们定义了一个class
,创建了一个class
的实例后,我们可以给该实例绑定任何属性和方法,这就是动态语言的灵活性。
动态语⾔:可以在运⾏的过程中,修改代码
静态语⾔:编译时已经确定好代码,运⾏过程中不能修改
但是,如果我们想要限制class
的属性怎么办?比如,上例只允许对人类的实例添加 name
和 age
属性。
为了达到限制的目的,Python允许在定义class
的时候,定义一个特殊的__slots__
变量,来限制该class能添加的属性:
先定义一个学生的类class:
# -*- coding: utf-8 -*-
# @author: Flyme awei
# @Time : 2022/7/1 20:02
class Student