python学习笔记-tip39(限制动态指定属性和方法:__slots__的使用)

前言

我们知道,python是动态语言,可以在定义好类之后再动态的给其设置方法或者属性,如下方例子所示:


python学习笔记-tip39(限制动态指定属性和方法:__slots__的使用)_第1张图片

注意上面用到了

MethodType(方法,类对象)这个函数用来给某个对象指定方法

但是正因为动态语言的这个特点,所以会有编程风险,所以我们需要限定住某些固定属性

怎么限定?
__slots__函数
我们来看下用法

python学习笔记-tip39(限制动态指定属性和方法:__slots__的使用)_第2张图片

使用方法很简单

    __slots__=('name','age')

就能限制住类中的属性了

需要注意的是,用__slots__修饰的属性只对当前的类实例有作用,对于子类是没有约束限制的

如图


python学习笔记-tip39(限制动态指定属性和方法:__slots__的使用)_第3张图片

如果想让子类也约束的话,也同时使用__slots__去约束

你可能感兴趣的:(python学习笔记-tip39(限制动态指定属性和方法:__slots__的使用))