Python 如何在单行if语句中运行函数

Python 如何在单行if语句中运行函数,python,python-2.7,Python,Python 2.7,我有一个if语句,我正试图将它转换成一行,以便在终端外壳中使用,但似乎无法使它工作 基本上,代码类型如下所示: import module if condition: module.runCustomMethod() else: pass 所以我试着这样写: import module;module.runCustomeMethod() if condition == True else pass 但无论我如何安排,它总是给我一个语法错误。我该如何以这种方式运行一个方法呢?

我有一个if语句,我正试图将它转换成一行,以便在终端外壳中使用,但似乎无法使它工作

基本上,代码类型如下所示:

import module

if condition:
    module.runCustomMethod()
else:
    pass
所以我试着这样写:

import module;module.runCustomeMethod() if condition == True else pass

但无论我如何安排,它总是给我一个语法错误。我该如何以这种方式运行一个方法呢?

您试图做的事情非常难看,有更好的方法可以做到这一点,但是

import module;module.runCustomeMethod() if condition == True else pass
这里的问题是
pass
是一个语句,Python表达式永远不能包含语句

由于您没有使用表达式的值,因此可以使用任何对计算无害的表达式替换该
pass

import module;module.runCustomeMethod() if condition == True else None
现在代码中没有
SyntaxError
。尽管它仍然不起作用,因为
条件
没有在任何地方定义,所以它只会引发
名称错误
。但是,如果这在您的实际代码中不是问题,那么这将起作用

作为旁注,您几乎总是只想要
if条件
,而不是
if条件==True
。仅当您特别希望接受
True
并拒绝其他truthy值(如
1
)时才使用该选项


如果在sh脚本中执行此操作,最干净的解决方案可能是:

python <<EOF
import module
if condition:
    module.runCustomeMethod()
EOF

python
condition
从何而来?您可能实际上不应该这样做,但是……
if condition:\uuuuuuuuuuuu('module')。runCustomMethod()
允许您摆脱
import
语句,因此您可以避免使用两个语句的问题,但同样,您可能不应该这样做。供将来参考(我给你修了这个),几乎所有标记为python-2.7的问题都应该标记为python。您好,非常感谢您的反馈。是的,这确实是一种难看的编写方式,但它试图将内容保存在一个文件中。虽然现在我认为它是否可以以不同的方式完成。但我想探索各种选项。当然,在这个示例中,我已经看到了t定义了条件,但这更多的是我试图实现的一个框架。我现在没有测试这个的方法,所以让我在大约16小时后发布一个更新…是的,当我将“通过”更改为“无”时,它似乎起了作用。非常感谢!