Python:为什么我会收到“意外的关键字参数”错误?
我正在尝试设置图表。对于初始化,我想要选择是否从节点和边的集合开始。所以我给了他们默认值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不是一个类,而是一个常规函数。
替换def Graph():为class Graph:。