{site_name}

{site_name}

🌜 搜索

Python成员对象是指类的属性或实例变量,可以通过点号(.)进行访问和修改

Python 𝄐 0
python成员属性,python成员函数,python中成员方法和类方法,python的对象,python类的成员函数,python的成员变量
Python成员对象是指类的属性或实例变量,可以通过点号(.)进行访问和修改。属性可以是数据属性、方法或其他任何可调用的对象。

__slots__ 是一个特殊的属性,用于在定义类时限制实例对象可以拥有的属性。它是一个字符串列表,列出了允许的属性名称。如果一个类定义了 __slots__,那么它的实例只能拥有 __slots__ 中所定义的属性名,而且不能动态添加额外的属性。

使用 __slots__ 可以减少实例对象的内存占用,并提高访问速度,因为不需要为每个实例对象创建 __dict__ 字典来保存属性。

以下是一个示例代码:

python
class MyClass:
__slots__ = ['name', 'age']

def __init__(self, name, age):
self.name = name
self.age = age

obj1 = MyClass("Alice", 25)
print(obj1.name) # 输出 Alice
obj1.height = 170 # 报错!'MyClass' object has no attribute 'height'


在上面的代码中,我们定义了一个名为 MyClass 的类,并将其 __slots__ 属性设置为包含两个字符串 'name' 和 'age'。这意味着该类的实例对象只能拥有这两个属性,并且不能添加其他属性。当我们尝试为 obj1 添加一个名为 height 的属性时,程序会抛出 AttributeError 异常,提示该对象没有名为 height 的属性。