建立将哪个类实现导入到模块中

巴兹

我希望对以下内容进行单元测试:

import sys
if sys.platform == "darwin":
    import OSX.Leap as Leap
elif 'linux' in sys.platform:
    import Linux.Leap as Leap

如何在测试中确定是否已导入OSX.Leap或Linux.Leap?换句话说,我怎么知道我已经向模块添加了哪个版本的Leap类?

更新

如果使用,inspect我可以得到:

<module 'Linux.params' from 'Linux/params.pyc'>

为了:

inspect.getmodule(Leap)
虚假的

您可以使用__name__属性访问模块的名称

>>> import cStringIO as c
>>> c.__name__
'cStringIO'
>>> import StringIO as c
>>> c.__name__
'StringIO'

对于您而言:

if 'Linux' in module_to_test.Leap.__name__:
    # Linux ...

另一种方法是使用__file__属性。但这不适用于某些模块(例如C扩展模块)

根据OP的注释,UPDATELeap不是模块,而是模块内部的类/类型。

您可以使用__module__类的属性访问模块名称

Leap.__module__

或者,就像您在更新的问题中所做的那样,使用inspect.getmodule获取模块:

inspect.getmodule(Leap).__name__
inspect.getmodule(Leap).__file__

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将扫描仪导入到名为System的类中

将包专用类导入到JShell

错误:多个模块匹配。使用skip-import选项跳过将组件导入到最近的模块中

将Project-Swift.h导入到Objective-C类中...文件未找到

如何在Android Studio中将后端模块类导入到应用程序模块中

将解析类导入到阿尔及利亚

将本地开发的模块打包/导入到项目中

角延迟加载(模块尚未导入到模块中)

将变量从主文件导入到类变量

将iOS模块从Pod导入到nativescript插件

无法将类从一个模块导入到另一个模块-Scala

将只有`__new__`的Python类导入到Robot Framework中

将模块内的所有函数和类导入到python类中

如何将Firebase导入到app模块以外的模块中?

将更新的模块重新导入到python

如何将swift类导入到ViewController中?

PHP无法将全局变量导入到类内部的函数中

如何将变量从主操作面板导入到类文件中?

将scala类导入到matlab中?

将tweenMax导入到javascript中

是否可以将模块导入到Polymer组件中?

将 Redux 中的 Props 直接导入到函数中

将 jars 从 Maven 项目导入到项目类路径

如何使用 Javac 将类导入到 Java 程序中?

使用 webpack 将模块节点之类的 javascript 类导出/导入到电子中

如何将各个模块中的选择对象导入到 __init__.py 中?

rust ...为什么将函数从 rs 文件导入到 lib 中?- 无法解决:使用未声明的类型或模块`client`

如何将节点模块导入到 svelte 组件中

如何将一个模块从 'base' 环境导入到 anaconda 中的 'tf' 环境?