Ни yapf, ни autopep8 не очищают это без скобок.Но когда вы добавляете их, становится чище:
% yapf code.py
if (self.container.name == 'bill' and self.container.box.chest.props.by_idnum
or self.container.name == 'steve'
and self.container.box.trunk.props.by_idnum):
pass
% autopep8 code.py
if (self.container.name == 'bill' and self.container.box.chest.props.by_idnum
or self.container.name == 'steve' and self.container.box.trunk.props.by_idnum):
pass
Если он подходит под 80 символов, я бы выбрал последнее.Если это все еще слишком долго, я бы подумал о переходе (a и b) в функцию.Как правило, это может быть предпочтительнее, поскольку тогда вы можете объяснить в коде - именем переменной - что означает (a и b).
Примечание. В этом случае он может быть еще чище:
if (self.container.name in ['bill', 'steve']
and self.container.box.trunk.props.by_idnum):
pass