Python 如何区分uu getattr中的方法和属性__

Python 如何区分uu getattr中的方法和属性__,python,Python,在Python中,当属性查找在类树中未找到self的属性时,将调用object.\uu getattr\uuuu 我的问题是如何区分正在查找的方法和属性 class Test: def __getattr__(self, name): # How can I discern between methods and properties? t = Test() t.foo() # a function object should be returned t.bar #

在Python中,当属性查找在类树中未找到self的属性时,将调用object.\uu getattr\uuuu

我的问题是如何区分正在查找的方法和属性

class Test:
    def __getattr__(self, name):
        # How can I discern between methods and properties?

t = Test()
t.foo() # a function object should be returned
t.bar   # an object should be returned
谢谢。

您可以使用


从属性访问的角度来看,没有区别。方法也是属性。如果我想存储该方法以供以后使用,该怎么办?t_foo=t.foo,然后稍后使用t_foo。这不是问题的一部分。他问如何区分方法和属性。。。但是,您也可以使用_元类_)来存储该方法以供以后使用。但这不是问题的一部分。你怎么知道这不是问题的一部分?这一点还不清楚,但在新的Python程序员中,方法调用在某种程度上不同于属性查找,这是一个常见的误解。他没有询问如何存储该方法以供以后使用。我的意图是不涉及在方法调用和属性查找方面没有区别的部分。我看不出另一个答案有什么问题,或者我必须再给他一个答案。我知道uu getattr_u_u也返回函数对象。据我所知,没有办法实现我想做的事情。非常感谢。
class Test:
    def __getattr__(self, name):
        if callable(name):
            return name()
        else:
            return name