__slots__
限制class的属性
__slots__
定义的属性仅对当前类实例起作用,对继承的子类是不起作用的
代码示例
# -*- coding: utf-8 -*-
# @File : slots_demo.py
# @Date : 2018-05-29
class Dog(object):
def __init__(self, name):
self.name = name
class Cat(object):
__slots__ = ["name"]
def __init__(self, name):
self.name = name
if __name__ == '__main__':
d = Dog("dog")
d.age = 23
print(d.age)
# 23
c = Cat("cat")
c.age = 24
# AttributeError: 'Cat' object has no attribute 'age'