gpt4 book ai didi

Python 类 - 实例被覆盖?

转载 作者:行者123 更新时间:2023-11-28 20:28:51 24 4
gpt4 key购买 nike

当为我创建的类调用一个对象的新实例时,我的一个类实例被覆盖了。为什么会这样?示例如下。

我的类定义如下:

class my_class:
attribute = ""
examples = []
children = []
d = {}
def __init__(self, attribute, e):
self.attribute = attribute
self.examples = e

for ex in self.examples:
self.d[ex[-1]] = self.d.get(ex[-1], 0) + 1

我正在制作一个初始实例:

root = my_class(some_attribute, data)

然后,我创建另一个实例:

child = my_class(different_attribute, root.examples[somewhere_1:somewhere_2])

最后,我最初的“root”现在在某种程度上与“child”相同,而“root”本应保持不变。这是为什么!?

最佳答案

我不认为你正在对 attributeexampleschildrend 进行初始化你认为你在做什么。这些现在是类的属性,而不是每个实例的属性。如果您希望类的每个实例都有自己的 attributeexampleschildrend 属性,你应该改为:

class my_class:
def __init__(self, attribute, e):

self.attribute = attribute
self.examples = e
self.children = []
self.d = {}

for ex in self.examples:
self.d[ex[-1]] = self.d.get(ex[-1], 0) + 1

关于Python 类 - 实例被覆盖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4180505/

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