【发布时间】:2013-08-03 01:24:15
【问题描述】:
所以我正在开发保存配置文件功能,但我不确定为什么会收到以下错误:
__init__() takes at least 3 arguments (3 given)
这是它发生的函数(在它到达self.profiles.update line 之后):
@view_config(route_name="profile", request_method='POST')
def save_profile(self):
try:
json = self.request.json_body
#username = str(json['userName'])
first_name = str(json['firstName'])
last_name = str(json['lastName'])
phones = str(json['phones'])
emails = str(json['emails'])
self.profiles.update(self, firstName=first_name, lastName=last_name, emails=emails, phones=phones)
value = {'result:': 'success', 'message': 'Profile Saved!'}
self.respond(value)
return self.route('profile')
except Exception, err:
print err
value = {'result:': 'error', 'message': 'There was an error processing the request'}
self.respond(value)
return self.route('profile')
扩展控制台:
我对 init 进行了项目范围的搜索,这似乎是唯一匹配的函数
class WhoView(Extension):
def __init__(self, context, request):
self.session = request.session
self.request = request
self.status_code = 200
self.content_type = "text/html"
ctx = self.session.ctx
self.request_context = context
Extension.__init__(self, ctx)
def attach_session(self, token):
self.ctx.attach_session(token)
有什么想法吗?您需要查看的其他信息?
【问题讨论】:
-
这并不能解决您的问题,但请注意,在您的程序中创建的每个对象都会调用
__init__——这是用于初始化(可变)对象的方法。 -
完整的堆栈跟踪将非常有用。如果您必须捕获异常而不是让它传播,您可以使用
sys.exc_info()[2]来获取回溯。