我有一些名称空间,一个包含在另一个名称空间中:
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
,很棒,但是如何进一步提升?
答案 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)¶