首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TypeError:必须以链接实例作为第一个参数调用未绑定方法set_rank() (没有得到任何结果)

TypeError:必须以链接实例作为第一个参数调用未绑定方法set_rank() (没有得到任何结果)
EN

Stack Overflow用户
提问于 2017-03-26 01:56:23
回答 1查看 341关注 0票数 1

当我运行时(nohup python -u rerank.py&)

我有以下几点:

代码语言:javascript
复制
  Traceback (most recent call last):
   File "rerank.py", line 24, in <module>
   rank_all()
   File "rerank.py", line 11, in rank_all
   Link.set_rank()
 TypeError: unbound method set_rank() must be called with Link instance as first argument (got nothing instead)

我的文件rerank.py看起来像这样,我找不到任何宝石

代码语言:javascript
复制
   #!/usr/bin/env python
   import os
   import django

   os.environ.setdefault("DJANGO_SETTINGS_MODULE", "news_factory.settings")
   django.setup()
   from news.models import Link

   def rank_all():
   for link in Link.with_votes.all():
    Link.set_rank()

    import time


    def show_all():
     print "\n".join("%10s %0.2f" % (l.title, l.rank_score,) for l in 
     Link.with_votes.all())

    print "----\n\n\n"

    if __name__ == "__main__":
     while 1:
      print "---"
      rank_all()
      show_all()
      time.sleep(5)

我真的很感谢你的帮助

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-26 02:02:05

Link.set_rank()更改为link.set_rank()Link.set_rank(link)

当前版本在类上查找set_rank,但不传入要操作的link实例。我们称之为“未绑定方法”。

建议的修订要么通过对链接实例进行查找来生成“绑定方法”,要么直接将链接传递到未绑定方法。这两种方法都是有效的,尽管第一种方法更短、更快,而且通常更可取。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43024123

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档