今天编写测试的过程中遇到这样一个error, 于是乎百度了一下,参考了《Python 核心编程(第二版)》。原来这种错误来自于把默认参数放到了位置参数的前面,Python的语法规定所有无默认值声明的参数必须在默认参数之前,否则会引发这样的error。
下面是错误的代码
class Room(object):
def __init__(self, name = ‘Name’, description):
self.name = name
self.description = description
self.paths = {}
def go(self, direction):
return self.paths.get(direction, None)
def add_paths(self, paths):
self.paths.update(paths)
只要把默认值去掉,或者把参数‘description’放到‘name’的前面即可解决问题。