拥有一个具有所有可能方法的对象

nik*_*nik 1 python

有没有一种方法可以创建一个类,以某种方式模拟模拟以实现所有可能的功能?所以它不应该返回AttributeError,而应该打印一条语句。

小智 5

是的,有__getattr__,请参阅Python参考

例子

class C:
    def __getattr__(self, attr):
        def print_fn_name():
            print(f"you called {attr}")
        return print_fn_name

c = C()
c.foo()
Run Code Online (Sandbox Code Playgroud)