使用不被类本身调用的回调更改类的变量

时间:2015-12-14 17:37:20

标签: python python-3.x callback

有一种采用回调函数的外部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时使用API​​Util的itemName设置UserClass的变量名,但我不知道如何执行此操作,因为我没有访问此回调中的UserClass实例

我想到了类似闭包的东西,但它似乎只适用于嵌套函数

class UserClass:
    name = ''

    def callback_update(self):
        nonlocal name
        name = self.itemName

    util = APIUtil(update=callback_update)
  

SyntaxError:没有绑定非本地名称'结果

0 个答案:

没有答案