Skip to main content
 首页 » 编程设计

python之在 Python 中为对象属性赋值的正确方法是什么

2025年05月04日11jackei

我是一个完全的 Python 新手,所以我的问题可能看起来很愚蠢。我看到在 Python 中有两种为对象属性赋值的方法:

使用__dict__:

class A(object): 
 
    def __init__(self,a,b): 
        self.__dict__['a'] = a 
        self.__dict__['b'] = b 

没有__dict__:

class A(object): 
 
    def __init__(self,a,b): 
        self.a = a 
        self.b = b 

谁能解释一下区别在哪里?

请您参考如下方法:

除非你需要动态设置属性并绕过descriptors或 .__setattr__() hook , 不要将属性直接分配给 .__dict__。

甚至不是所有的实例都有.__dict__ 属性,如果类定义了一个.__slots__ attribute以节省内存。

如果您确实需要动态设置属性但不需要绕过描述符或 .__setattr__() Hook ,您可以使用 setattr() function通常。