如何将可调用对象传递给类,以便它可以访问Python中的实例属性?

假设我有这个课:

class ClassA:
    def __init__(self, callable):
        self.name = "Hey!"
        self.callable = callable

    def call(self):
        self.callable()

And I want to pass into callable a function that can access name:

def function_a():
    print(f"{self.name}")

这样

a = ClassA(function_a)
a.call()

产生此:

Hey!

我应该怎么做?元分类?类装饰?还是我应该彻底改革我的体系结构,以使我不需要做这样的事情?

谢谢!