无法弄清楚这一点。在Terminal中,我导入了一个实例化类的模块,我还没知道如何访问。当然,我总是可以在终端实例化:
Server=Data.ServerData()
然后我可以得到一个结果:
Server.Property().DefaultChart
但是,我想跳过该步骤,直接从已在模块中运行的实例获取结果。我认为在这种情况下Data.Server应该从我导入Data时加载Server实例:
Data.Server.Property().DefaultChart >>> AttributeError: 'module' object has no attribute 'Server'
那么如何从终端访问正在运行的实例?
答案 0 :(得分:2)
如果导入Data.py
隐式创建Data.ServerData
类的实例(有些可疑,但在某些情况下确定),那仍然没有告诉我们该模块如何选择命名该实例。在dir(Data)
提示符下>>>
查看Data
模块中定义的所有名称;如果你想查看哪些名称(如果有的话!)的值是Data.ServerData
的实例,例如:
>>> [n for n in dir(Data) if isinstance(getattr(Data,n), Data.ServerData)]
阅读Data.py
的源代码可能更简单,但是您还有许多其他选项可以进行此类内省,以确切了解正在发生的事情(以及它与您的预期有何不同[[不确定基于什么] !]]继续)。