限制动态属性声明

2024-09-30 18:15:37 发布

您现在位置:Python中文网/ 问答频道 /正文

__slots__声明允许限制动态属性声明。但这只是__slots__的一系列副作用之一。如何在没有__slots__的情况下限制动态属性声明

所需语法:

class A(SomeSmrtClass):
    __allowed_attrs = set(['a', 'b'])

期望的行为:

>>> a = A()
>>> a.a = 1 # Allowed
>>> a.c = 2 # Allowed in SomeSmartClass by deault
>>> a.d = 3
AttributeError: ...

Tags: in声明属性语法情况动态attrsclass