我有一个与外部工具接口的库,并公开了一些基本关键字以从机器人框架中使用;这个库是作为一个 python 包实现的,我想在这个包的模块中实现实现复杂逻辑并公开更多关键字的扩展功能。该软件包具有测试用例范围,但我不完全确定它是如何工作的。如果我提出一些我想到的方法,那么有更多知识的人可以让我知道我在正确的轨道上,以及我在哪里吠叫错误的树......
使用实例变量 - 如果范围是这样的,python 解释器将看到当前测试用例导入的包(即,这在不同的测试用例中被视为单独的包,而不是同一包的单独实例),然后在初始化时,我可以设置一个全局变量
INSTANCE
,self
然后从包中的另一个模块导入INSTANCE
并使用它。使用实例字典 - 如果范围是所有导入都将包视为相同,我可以使用 robots.running.context 设置字典键,以便在实例字典中为包所在的每个上下文都有一个项目已导入 - 这意味着我可以在基于此的模块中使用相同的上下文变量作为查找键。(这个的缺点是它会阻止垃圾收集,直到包本身超出范围,并且依赖于它持久地在范围内。)
我尚未意识到的上下文变量将为我提供范围内的实例。这些文档很难搜索,因此完全有可能我遗漏了一些东西,这会使这变得微不足道。同样好的是允许我调用范围内的关键字。
一些我没有考虑过的极好的可能性......
那么有人可以帮忙吗?