0

想不通这个。在终端中,我导入了一个实例化一个类的模块,我还没有弄清楚如何访问它。当然,我总是可以在终端中实例化:

服务器=数据.ServerData()

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

Server.Property().DefaultChart

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

Data.Server.Property().DefaultChart

>>> AttributeError:“模块”对象没有属性“服务器”

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

4

1 回答 1

2

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

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

阅读Data.py的源代码可能更简单,但您确实有许多其他选项可以进行这种内省,以准确了解正在发生的事情(以及它与您预期的 [[不确定基于什么!]] 将发生的事情有何不同) .

于 2009-09-13T17:46:48.460 回答