无法弄清楚这一点。在Terminal中,我导入了一个实例化类的模块,我还没知道如何访问。当然,我总是可以在终端实例化:

Server=Data.ServerData()

然后我可以得到一个结果:

Server.Property().DefaultChart

但是,我想跳过该步骤,直接从已在模块中运行的实例获取结果。我认为在这种情况下Data.Server应该从我导入Data时加载Server实例:

Data.Server.Property().DefaultChart

>>> AttributeError: 'module' object has no attribute 'Server'

那么如何从终端访问正在运行的实例?

有帮助吗?

解决方案

如果导入 Data.py 隐式创建 Data.ServerData 类的实例(有点可疑,但在某些情况下确定),那仍然没有告诉我们如何该模块选择命名该实例。在>>> 提示符处执行 dir(Data),以查看 Data 模块中定义的所有名称;如果你想查看哪些名称(如果有的话)具有 Data.ServerData 实例的值,例如:

>>> [n for n in dir(Data) if isinstance(getattr(Data,n), Data.ServerData)]

阅读 Data.py 的源代码可能更简单,但是您还有许多其他选项可以进行此类内省,以确切了解正在发生的事情(以及它与您的预期有何不同[[不知道在什么基础上!]]继续)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top