使用将函数传递给类@属性.setterd

2024-05-04 11:06:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在制作一个类,我想声明一个变量,其中包含一个函数,我想在对某些类进行一些处理后调用它们信息。但是我不知道在这种情况下如何使用物业装饰。 我已经有了这个代码:

class MyClass:
    def __init__(self):
        self.callback = None
    def run():
        #do something here...
        result = self.callback(result)
        print(result)

def func1(result):
    result = result ** 2
    return result

def func2(result):
    result = result ** 4
    return result


class1 = MyClass()
class1.callback = func1
class1.run()
class1.callback = func2
class1.run()

我的问题是如何使用@property和{}和{}装饰器自我回调在这个代码里?在


Tags: 函数run代码self信息声明returndef
1条回答
网友
1楼 · 发布于 2024-05-04 11:06:39

基于这段代码,我认为不需要properties,但不管怎样,它还是在这里。在

class MyClass:
    def __init__(self):
        self.__callback = None

    @property
    def cb(self):
        return self.__callback

    @cb.setter
    def cb(self, new_cb):
        self.__callback = new_cb

相关问题 更多 >