gpt4 book ai didi

Python 类成员表现得好像它是静态的?

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

我正在编写我的第一个 python 程序,但我遇到了一些看起来很奇怪的事情。

我的程序是这样的:

def main():
listOfThings = []
for i in range(0,3):
newThing = thing()
newThing.listOfStrings.append('newString')
listOfThings.append(newThing)

事情看起来像这样:

class thing:
listOfStrings = []

我期望 listOfThings 是:

listOfThings
-thing1
-newString
-thing2
-newString
-thing3
-newString

但是我得到的是:

listOfThings
-thing1
-newString
-newString
-newString
-thing2
-newString
-newString
-newString
-thing3
-newString
-newString
-newString

在其他语言中,如果 thing.listOfStrings 是静态的,这是我希望看到的。我在这里缺少 python 的一些微妙之处吗?

最佳答案

listOfStrings 是一个类属性。所有实例将共享相同的 list

相反,您应该在 __init__

期间添加属性
class thing:
def __init__(self):
self.listOfStrings = []

关于Python 类成员表现得好像它是静态的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12444881/

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