gpt4 book ai didi

Python对象的属性

转载 作者:行者123 更新时间:2023-11-30 23:31:33 25 4
gpt4 key购买 nike

我有一个关于对象属性的Python问题。代码:

>>> class A(object):
... dict = {}
... def stuff(self, name):
... self.dict[name] = 'toto'
...
>>> a = A()
>>> print a.dict
{}
>>> a.stuff('un')
>>> print a.dict
{'un': 'toto'}
>>> b = A()
>>> print b.dict
{'un': 'toto'}

我是一名 PHP 开发人员,在 PHP 中,rint b.dict 将是 {}。为什么 python 在 ab 之间共享这个属性?定义在新实例化时将成为新实例的类属性的方法是什么?

最佳答案

您创建了一个类属性,而不是实例属性。字典是可变的,您可以从实例或直接在类上更改它,但根据定义,类属性在所有实例之间共享。

__init__ 方法中创建一个新的空字典:

class A(object):
def __init__(self):
self.dict = {}

def stuff(self, name):
self.dict[name] = 'toto'

关于Python对象的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19836064/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com