gpt4 book ai didi

python - GAE - 出现 TypeError,要求将类实例传递给类自己的方法

转载 作者:太空宇宙 更新时间:2023-11-03 19:37:56 24 4
gpt4 key购买 nike

我对编程真的很陌生...我设置了一个类来为 Google 的 User API 用户对象提供支持信息。我使用 db.model 将此信息存储在数据存储中。

当我使用以下代码调用 user_info 类的 okstatus 方法时:

elif user_info.okstatus(user):
self.response.out.write("user allowed")

我收到此错误:

unbound method okstatus() must be called with user_info instance
as first argument (got User instance instead)

这是我的 user_info 类。

class user_info:
def auth_ctrlr(self, user):
if self.status(user) == status_allowed:
return ("<a href=\"%s\">Sign Out</a>)" %
(users.create_login_url("/")))
else:
return ("<a href=\"%s\">Sign In or Get an Account</a>)" %
(users.create_logout_url("/")))
def status(self, user):
match = sub_user.gql(qu_by_user_id, user.user_id)
return match.string_status
def group(self, user):
match = sub_user.gql(qu_by_user_id, user.user_id)
grp = group_names.gql(qu_by_user_id, match.groupID)
return grp
def okstatus(self, user):
match = self.status(user)
if match == status_allowed:
return True

我的理解是,方法调用参数中的参数“self”将其描述为类的子级。我已经尝试了所有我能想到的方法,但在网上找不到任何相关信息。有人可以告诉我我做错了什么吗?

谢谢

最佳答案

self 必须是该类的实例。由于您从未真正使用它,因此您可以简单地将所有这些方法变成函数(并将 self.status 情况更改为 status) .

如果您是“类迷恋者”,并且绝对坚持将函数保留为类中的方法(而不是它们“想要”成为的模块顶级函数!-),则将调用站点更改为

elif user_info().okstatus(user):

也就是说,创建 user_info 类的一个实例,并调用它的方法(无用的实例然后立即消失,指出这些实际上应该是函数;-)。

关于python - GAE - 出现 TypeError,要求将类实例传递给类自己的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2467201/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com