这是inspect.getmembers中的错误,还是预期的行为?
torch.bmm in inspect.getmembers(torch)
False
答案 0 :(得分:1)
这不是错误; inspect.getmembers
正是在做它所记录的事情:
返回按名称排序的(名称,值)对列表中对象的所有成员……
因此,def test():
cdef:
int i = 10
int* ref = &i
print(ref[0]) # Prints 10
ref[0] = 5
print(i) # Prints 5
可能在这样的列表中,但('bmm', torch.bmm)
不在。
如果您想知道torch.bmm
是否是torch.bmm
的成员...那么,您已经知道是,否则torch
会提出一个torch.bmm
。但是您可以搜索每对的第二个(值)部分:
AttributeError
...或者您可以将列表变成字典并进行搜索:
any(member == torch.bmm for name, member in inspect.getmembers(torch))
但是,torch.bmm in dict(inspect.getmembers(torch)).values()
并未引发异常这一事实已经足以告诉您该异常的存在。如果您想处理不这样做的可能性,那么在获得该异常之后进行的任何检查都为时已晚;您只想处理异常:
torch.bmm