断言后Python运行多个命令

问题描述 投票:1回答:1

调用assert语句后如何运行多个命令?例如,这就是我想要做的事情(不使用assert):

x = False
if x != True:
    my_func()
    raise ValueError("My statement")

这正是我想要的,但在这种情况下使用assert似乎更Pythonic。在调用assert之后,我无法弄清楚如何做多件事。这是我正在尝试做的事情(但语法不正确):

x = False
assert x == True, my_func() "My statement"
python python-3.x assert
1个回答
1
投票

你可以做到

assert x == True, [my_func(), "My statement"][1]

DEMO

def my_func():
    print("my function")

x = False
assert x == True, [my_func(),  "My statement"][1]

OUTPUT

my function
Traceback (most recent call last):
  File "C:/Users/abdul.niyas/AppData/Local/Programs/Python/Python36-32/a.py", line 5, in <module>
    assert x == True, [my_func(),  "My statement"][1]
AssertionError: My statement
© www.soinside.com 2019 - 2024. All rights reserved.