【问题标题】:How to call method with "self" parameter?如何使用“self”参数调用方法?
【发布时间】:2015-01-12 13:33:53
【问题描述】:

我需要调用一个函数方法complete_login:

class VKOAuth2Adapter(OAuth2Adapter):  
    ...

    def complete_login(self, request, app, token, **kwargs):
    ...

这应该很容易,但我不明白应该在“self”中发送什么参数。我知道它为什么在那里,但是如何调用这样的方法?

login = VKOAuth2Adapter.complete_login( ??? , request, app, token)

谢谢。

【问题讨论】:

  • 你不需要放任何东西 - self 是隐含的。

标签: python


【解决方案1】:

你需要创建一个类的实例

v = VKOAuth2Adapter( whatever parameters it needs, if any )

然后你会调用:

v.complete_login(request, app, token)

其中v 将自动成为方法的self

【讨论】:

    【解决方案2】:

    self 参数在调用 Python 方法时通常不会显式传递——它是隐式传递的。所以你会这样做:

    vk = VKOAuth2Adapter()
    vk.complete_login(req, app, token)
    

    vk 实例将作为self 传递。你也可以这样写代码:

    vk = VKOAuth2Adapter()
    VKOAuth2Adapter.complete_login(vk, req, app, token)
    

    但这在 Python 中不被视为正常做法,因此请使用第一个选项。

    请注意,如果您从同一个类的另一个方法中调用该方法,您应该这样做:

    self.complete_login(req, app, token)
    

    这是因为self 将是该类的一个实例,就像我之前的示例中的vk 一样。

    【讨论】:

      猜你喜欢
      • 2023-03-07
      • 2021-11-11
      • 2014-05-01
      • 2011-09-15
      • 2014-05-19
      • 1970-01-01
      • 2013-11-08
      • 1970-01-01
      • 2011-09-28
      相关资源
      最近更新 更多