class MyClass:
__slots__ = ['name', 'age']
def __init__(self, name, age):
self.name = name
self.age = age
# 解释说明:
# __slots__ 是一个类变量,用于限制类的实例所能拥有的属性。
# 在上面的例子中,MyClass 的实例只能有 'name' 和 'age' 这两个属性。
# 如果尝试给实例添加其他属性,会引发 AttributeError 异常。
# 使用 __slots__ 可以节省内存,并且可以防止程序员意外地添加不必要的属性。
# 示例:正常设置属性
obj = MyClass('Alice', 30)
print(obj.name) # 输出: Alice
print(obj.age) # 输出: 30
# 示例:尝试设置不在 __slots__ 中的属性,会引发 AttributeError
try:
obj.address = "123 Main St"
except AttributeError as e:
print(e) # 输出: 'MyClass' object has no attribute 'address'
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站