Python 为什么可以';t PyCharm在调试模式下显示PyTorch模块对象属性
我在PyCharm中定义了PyTorch的Python 为什么可以';t PyCharm在调试模式下显示PyTorch模块对象属性,python,debugging,pycharm,pytorch,Python,Debugging,Pycharm,Pytorch,我在PyCharm中定义了PyTorch的模块的一个子类,并创建了一个实例a: from torch.nn import Module class AModule(Module): def __init__(self): self.something = 10 def __repr__(self): return "AModule" a = AModule() 如果运行调试器并检查a,则看不到其属性: 我检查了一下,模
模块的一个子类
,并创建了一个实例a
:
from torch.nn import Module
class AModule(Module):
def __init__(self):
self.something = 10
def __repr__(self):
return "AModule"
a = AModule()
如果运行调试器并检查a
,则看不到其属性:
我检查了一下,
模块
是用Python编写的(而不是用C实现的),这是为什么呢?这是因为在第一个类似的\uuu init\uuu
调用中没有正确初始化模块
:
super(AModule, self).__init__()
然而,PyCharm本可以显示更多有用的信息,所以我创建了它。部分原因似乎是pytorch本身的问题,不知何故-我尝试通过
pdb
运行代码,并检查dir(a)
,这引发了一个错误:'AModule'对象没有属性'\u参数'。我通过谷歌搜索该错误消息发现的各种其他问题似乎认为您调用模块的方式可能是原因所在-您的import
语句是什么样子的,您可以将其编辑到您的问题中吗?也就是说,这似乎还可能暴露PyCharm的错误及其用于调试的引擎(它应该比看起来更优雅地处理这样的情况)如果没有人在一个合理的时间内发布一个结论性的答案,你可能会考虑。谢谢,你说得对,我使用的模块不正确。我应该在AModule的init中调用模块的init。