在Python中,有更好的方式检查多个变量为单一类型吗?

5 投票
2 回答
9412 浏览
提问于 2025-04-18 08:14
    if not [True]*3 == [isinstance(i, int) for i in [days, months, years]]:
        raise TypeError('days, months, and years must be int type not %s %s %s'
                        % (type(days), type(months), type(years)))

我想检查天、月和年是否是整数。我想到的最简洁的方法就是上面那样,但我不确定这是否是最好的方法。不过我觉得这样比为每个整数写多个if语句要好。

2 个回答

6

在编程中,有时候我们会遇到一些问题,特别是在使用某些工具或库的时候。这些问题可能会让我们感到困惑,但其实很多时候,解决这些问题的方法是相似的。

比如说,当你在使用一个新的编程框架时,可能会发现它的文档写得不够清楚,或者你不太明白某些功能是怎么用的。这种情况下,最好的办法就是去查找一些示例代码,看看别人是怎么做的。

另外,社区的力量也很重要。像StackOverflow这样的论坛上,有很多人分享他们的经验和解决方案。你可以在上面提问,或者搜索一下是否有人遇到过类似的问题。

总之,遇到问题时不要慌张,先冷静下来,查找资料,看看有没有现成的解决方案。编程就是一个不断学习和解决问题的过程,慢慢来,你会越来越熟练的。

if not all(isinstance(i, int) for i in [days, months, years])
23

你可以使用 all 函数和一个 生成器表达式

if not all(isinstance(i, int) for i in [days, months, years]):

撰写回答