获取函数的“命名空间路径”

时间:2011-01-16 18:43:16

标签: python

我有一些名称空间,一个包含在另一个名称空间中:

class A:
    class B:
        class C:
            def method(): pass

get_ns_path(A.B.C.method) # >>> 'A.B.C.method'

是否可以实现接收方法/函数并将“命名空间路径”作为字符串返回的get_ns_path(func)

A.B.C.method.im_class给了C,很棒,但是如何进一步提升?

2 个答案:

答案 0 :(得分:2)

我认为不可能:

>>> dir(A.B.C)
['__doc__', '__module__', 'method']

更令人信服的是,A.B.C没有理由知道A.B,因为你可以做Z.C = A.B.C并且它们将是同一个对象。那么get_ns_path(Z.C.method)会返回什么?

答案 1 :(得分:-1)

您可以使用inspect模块获取 mro

inspect.getmro(cls)¶