2

我有检查类的属性以及预定字符串是否在字符串或列表中的代码,如下所示:

if (self.name in event and 'AL' in event) or (self.name in event and 'FH' in event)

我想知道是否有更优雅的方式来组合这些,所以我不必为这两种情况输入两次“事件”。显然没什么大不了的,但我总是在市场上让事情变得更性感。

4

2 回答 2

4

您可以将表单的表达式简化为(x && y) || (x && z)表单x && (y || z)。因此,您可以将表达式写为:

if self.name in event and ('AL' in event or 'FH' in event):
    #...
于 2013-01-09T00:00:10.770 回答
3

self.name in event您可以将组件从子表达式中分解出来,并用于any()迭代其他名称。

if self.name in event and any(it in event for it in ['AL', 'FH', ...]):
    ...

(免责声明:这是未经测试的,因此请仔细检查您是否获得与原始结果相同的结果。)

于 2013-01-08T23:59:45.397 回答