Python:为什么我会收到 "unexpected keyword argument" 错误?

Python: Why do I get an "unexpected keyword argument" error?

我正在尝试设置图表。对于初始化,我想要选择是否从节点和边的集合开始。所以我给了他们默认值None。或者我想:

def Graph():
    def __init__(self, nodes=None, edges=None, msg="test"):
        """
        assumes that the node and edge lists are the respective objects
        """
        if nodes == None:
            self.nodes = []
        else:
            self.nodes = nodes
            
        if edges == None:
            self.edges = []
        else:
            self.edges = edges
        
        self.node_names = []
        for node in nodes:
            self.node_names.append(node.get_name())
            
        self.msg = msg

(消息部分是为了用最简单的示例测试代码)

我得到的是:

g = Graph(msg="33")
Traceback (most recent call last):

  File "<ipython-input-29-cc459c9baef3>", line 1, in <module>
    g = Graph(msg="33")

TypeError: Graph() got an unexpected keyword argument 'msg'

有人可以帮助我吗?这可能是一件荒谬简单的事情,但我就是看不到它,我在这里有点生气......

您没有将 Graph 定义为 class,而是定义为常规函数。

def Graph(): 替换为 class Graph:

将“图表”声明为 class。

class Graph():
    def __init__(self, nodes=None, edges=None, msg="test"):
        """
        assumes that the node and edge lists are the respective objects
        """
        ..