有一种采用回调函数的外部API方法。 回调的参数是预定义的,所以我无法改变。
class APIUtil:
def __init__(self, update):
self.itemName = "awesomeItem"
self.update = update
def change_value(self):
self.update(self)
def callback_update(self):
pass
class UserClass:
name = ''
util = APIUtil(update=callback_update)
我想在调用callback_update时使用APIUtil的itemName设置UserClass的变量名,但我不知道如何执行此操作,因为我没有访问此回调中的UserClass实例
我想到了类似闭包的东西,但它似乎只适用于嵌套函数
class UserClass:
name = ''
def callback_update(self):
nonlocal name
name = self.itemName
util = APIUtil(update=callback_update)
SyntaxError:没有绑定非本地名称'结果