Python-如何计算存在的If/Else语句的数量



我想计算函数中有多少If/Else语句。

我的代码如下:

def countdown(type):
if type == 1:
//code
elif type == 2:
//code
else:
print(f"You have reached the end of the script. "
f"The maximum type of countdowns are: {x}")
exit(1)

x所在的位置,应该有if查询的数量(if/Else(。在这种情况下,有3个查询。如果我在这个函数中创建另一个if/else查询,就不必更改脚本底部的警告。

这可能吗?

我使用的是Python 3.10

不要使用if..else,而是使用dict或list:

types = {
1: ...,
2: ...
}
try:
types[type]
except KeyError:
print(f"You have reached the end of the script. "
f"The maximum type of countdowns are: {len(types)}")
exit(1)

将什么作为值放入dict取决于……你能概括算法吗?这样你只需要将一个值而不是实际代码放入dict中?太棒了否则,将函数放入dict:

types = {1: lambda: ..., 2: some_func, 3: self.some_method}
...
types[type]()

由于您使用的是Python 3.10,因此可以使用新的match运算符。一个例子:

def countdown(type):
match type:
case 1:
# code
case 2:
# code
case _:
print(f"You have reached the end of the script. "
f"The maximum type of countdowns are: {x}")
exit(1)

对我来说,这是一个比dict更可读的解决方案。

关于计算选项的数量,让我们考虑我们有n个不同的、逻辑上分离的选项。在这种情况下,我建议您使用enum:

from enum import IntEnum
class CountdownOption(IntEnum):
FIRST = 1
SECOND = 2
# ...
# ...
def countdown(type):
match type:
case CountdownOption.FIRST:
# code
case CountdownOption.SECOND:
# code
case _:
print(f"You have reached the end of the script. "
f"The maximum type of countdowns are: {len(CountdownOption)}")
exit(1)

相关内容

  • 没有找到相关文章

最新更新