类内的 Python 回调

标签 python class function methods callback

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

所以,在我的类里面,我想要这样的东西:

self.client = pysvn.Client()
self.client.callback_get_login = self.get_login

改为:

self.client = pysvn.Client()
self.client.callback_get_login = get_login

但是在第一个片段中我遇到了错误:

pysvn._pysvn_2_7.ClientError: unhandled exception in callback_get_login

有没有办法在类中分配回调?

最佳答案

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

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

关于类内的 Python 回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8472299/

相关文章:

c - 如何将变量移交给* char函数?

ios - 在 Swift 3 中使用变量进行类型转换

c - 如何让节拍器在程序录音的同时播放?

python - 避免使用 Python 中的全局变量,我有几个函数可以更改一个变量

python - 根据给定条件从数据框中过滤特定数据点

java - Java 中的 ".class"关键字

javascript - 获取javascript类中静态方法的值

python - Pandas 中的矩阵乘法

python - 获取范围内随机数选择中整数出现次数 N 次

c++ - 对于类构造函数,通过括号或等号赋值有什么区别?