Python 类变量不是静态的?

Python 类变量不是静态的?,python,Python,我的类“NodeCreate”中的类变量“adjList”有问题。似乎每当我附加到adjList时,它都会扩展到该类的所有对象,而不仅仅是我调用的对象。我想我基本上误解了一些事情,但我不知道我应该做什么。如何附加到每个对象的adjList 代码: 输入: A B C D E F G A B A D A F B C B G C D 打印输出的结果是:[B',D',F',C',G',D'],甚至对于A.adjList也是如此。我期望的只是['B'、'D'、'F']。当需要实例变量时,您使用的是类变

我的类“NodeCreate”中的类变量“adjList”有问题。似乎每当我附加到adjList时,它都会扩展到该类的所有对象,而不仅仅是我调用的对象。我想我基本上误解了一些事情,但我不知道我应该做什么。如何附加到每个对象的adjList

代码:

输入:

A B C D E F G
A B
A D
A F
B C
B G
C D

打印输出的结果是:[B',D',F',C',G',D'],甚至对于A.adjList也是如此。我期望的只是['B'、'D'、'F']。

当需要实例变量时,您使用的是类变量。基本上,类变量是为类的所有对象设置的,实例变量只为一个对象设置

以下是将
adjList
作为实例变量而不是类变量的类:

class NodeCreate:

    def __init__(self, name):
        self.name = name
        self.adjList = []

这里有一个我以前写过的答案,它更详细地解释了这一点:

谢谢你的帮助。我很难理解。没问题;一开始很混乱。
class NodeCreate:

    def __init__(self, name):
        self.name = name
        self.adjList = []