大多数pythonic方式表示一个变量,它只通过两个'命名'值切换

cem*_*ate 1 python coding-style readability

我有一个非常复杂的迭代,每次循环,我都需要一个"参数"来影响循环中完成的工作.基本上,我一直在做以下事情:

CLOSE_SIDE = 0
FAR_SIDE = 1

....

while (...):
    if (side == CLOSE_SIDE):
        ....
    else if (side == FAR_SIDE):
        ....

    ....

    side = FAR_SIDE if (side == CLOSE_SIDE) else CLOSE_SIDE
Run Code Online (Sandbox Code Playgroud)

我意识到我可以使用布尔值,但我觉得这降低了我正在做的事情的可读性和显而易见性.我希望这两个州被"命名".这项任务虽然紧凑,但感觉非常笨重.做一整个if语句:

if side == CLOSE_SIDE:
    side = FAR_SIDE
else if side == FAR_SIDE:
    side = CLOSE_SIDE
Run Code Online (Sandbox Code Playgroud)

感觉同样笨重.

解决这个问题的最佳方法是什么?它更像是一种风格问题而不是任何东西.想得到社区的一些意见

Jan*_*ila 6

相反命名的两个值,你可以为选择适当的名称bool变量并切换之间TrueFalse:

while (...):
    if far:
        ....
    else:
        ....

    ....

    far = not far
Run Code Online (Sandbox Code Playgroud)