类内部的Python回调

ump*_*sky 4 python methods class function callback

我正在注册pysvn.Client.callback_get_login回调,但我希望我的回调在我的类下定义,作为方法,而不是全局函数.

所以,在我的班上,我希望有类似的东西:

self.client = pysvn.Client()
self.client.callback_get_login = self.get_login
Run Code Online (Sandbox Code Playgroud)

代替:

self.client = pysvn.Client()
self.client.callback_get_login = get_login
Run Code Online (Sandbox Code Playgroud)

但在第一个片段中,我收到了错误:

pysvn._pysvn_2_7.ClientError: unhandled exception in callback_get_login
Run Code Online (Sandbox Code Playgroud)

有没有办法分配一个类内的回调?

Céd*_*ien 6

我遇到了同样的问题,并通过为我的登录功能创建一个闭包来解决它:

class DummyClient:
   def __init__(self):
      def callback_get_login(realm, username, may_save):
         name = raw_input("Enter your svn login : ")
         password = getpass.getpass("Enter your svn password :")
         return True, name, password, False
      self.client.callback_get_login = callback_get_login
Run Code Online (Sandbox Code Playgroud)