如何使用“self”参数调用方法?

时间:2015-01-12 05:23:54

标签: python

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

class VKOAuth2Adapter(OAuth2Adapter):  
    ...

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

它应该很简单,但我无法理解应该在" self"中发送什么参数。我知道为什么会这样,但是怎么称呼这种方法?

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

感谢。

2 个答案:

答案 0 :(得分:4)

您需要创建该类的实例

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

然后你会打电话:

v.complete_login(request, app, token)

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

答案 1 :(得分:2)

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

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一样。