gpt4 book ai didi

python - 通过猴子修补创建 Python 回调

转载 作者:行者123 更新时间:2023-11-30 23:45:57 25 4
gpt4 key购买 nike

我正在创建一个对象,该对象将代表一些可以在程序外部更改的系统信息。我正在考虑允许我的代码的用户指定回调函数,当检测到更改时将调用该回调函数。这就是我所拥有的,它似乎可以工作(函数doodie将由用户提供)

def doodie(cls):
print cls.teststr

class Testarino(object):
def __init__(self):
self.teststr = 'Yay!'

def callback(self):
raise NotImplementedError

def go(self):
self.callback(self)

tester = Testarino()
tester.callback = doodie

tester.go()

我考虑过使用用户提供的装饰器,但我认为这对于用户来说可能不太直观。

这是最好的方法吗?有更好的办法吗?

最佳答案

这里不需要猴子修补,向您的 Testarino 类添加一个 set_callback() 函数会更干净,如下所示:

def doodie(cls):
print cls.teststr

class Testarino(object):
def __init__(self):
self.teststr = 'Yay!'
self.callback = None

def set_callback(self, callback):
self.callback = callback

def go(self):
if self.callback is None:
raise NotImplementedError
self.callback(self)

tester = Testarino()
tester.set_callback(doodie)

tester.go()

关于python - 通过猴子修补创建 Python 回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9300914/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com