基于已安装模块编写条件语句的Python方式是什么?

阿拉贡

来自C ++世界,我习惯于基于标志来编写条件编译,这些标志是在编译时使用CMake等工具确定的。我想知道模仿此功能的最Python方式是什么。例如,这是我当前根据是否找到模块设置的设置:

import imp

try:
    imp.find_module('petsc4py')
    HAVE_PETSC=True
except ImportError:
    HAVE_PETSC=False

然后,我可以使用HAVE_PETSC其余的Python代码。这行得通,但是我想知道这是否是在Python中执行此操作的正确方法。

布宜诺斯艾利斯

是的,没关系。您甚至可以直接发出导入,并将modulename本身用作标志-如:

try:
    import petsc4py
except ImportError
    petsc4py = None

在使用之前,只需测试其真实性即可petsc4py

实际上,由于存在冗余,因此检查它是否存在,然后才尝试将其导入,就感觉异常了,因为这两个操作均会触发ImportError。但是有一个HAVE_PETSC检查变量是可以的-可以在上面的try / except之后创建它HAVE_PETSC = bool(petsc4py)

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

编写此多条件if语句的正确方法是什么?

如何编写基于父级的条件语句

如何以正确的方式编写条件语句

Angular 2 RC5编写基于模板的表单的方式是什么?

我可以用LINQ编写此语句的两种方式是什么?

在 Scala Spark 数据帧中编写 case 语句的优雅方式是什么?``

在Mac上安装python模块的最兼容方法是什么?

在基于Debian的发行版中列出已安装软件的最可靠方法是什么?

在 Python 的 if 语句中分组条件的正确语法是什么?

当我在 python 中编写自己的模块时,导入模块的正确方法是什么?

导入模块/功能的方式是什么?

C已安装的库-这是什么?

为什么在 Python 中调用函数和编写语句的工作方式不同?

嵌套条件语句的语法是什么?

条件语句中逗号的优点是什么?

以下if语句中的条件是什么?

条件语句中== true的意义是什么?

Python的heapq模块是什么?

复杂的条件渲染的反应方式是什么?

已安装但未检测到Python模块

Python:“ ModuleNotFoundError”,但是模块已安装?

已安装模块,但Python找不到它

未找到 Python Jira 模块,但已安装

Python找不到已安装的模块

Python在MacO上找不到已安装的模块slackclient。有什么建议?

使用 if 语句在 python 中条件导入模块

在 Django 中编写基于函数的视图的最佳方法是什么?

编写长if-else语句的pythonic方法是什么?

在Scala中使用Curry编写这些语句的类型是什么?