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
"""
..
我正在尝试设置图表。对于初始化,我想要选择是否从节点和边的集合开始。所以我给了他们默认值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
"""
..