假设我在我的 Python 文件中经常使用这个代码块
if x == 1:
x += 1
else:
x -= 1
有没有办法“复制”这段代码,这样我就不必在整个文件中重复输入这四行?
假设我在我的 Python 文件中经常使用这个代码块
if x == 1:
x += 1
else:
x -= 1
有没有办法“复制”这段代码,这样我就不必在整个文件中重复输入这四行?
是的,为它定义一个函数:
def flip_member(x):
if x == 1:
x += 1
else:
x -= 1
return x
然后,您可以从代码中的任何位置调用该函数,而不是重写相同的逻辑。
正如其他答案中所建议的,您可以编写 x 的函数并将 x 设置为等于函数的结果。
一些替代方法是以更简单的形式编写表达式:
x = x+1 if x==1 else x-1
上面计算的 x 的新值与问题中的四行代码相同。但是如果你只是想在值 1 和 2 之间来回切换 x,请注意 3-1 是 2,而 3-2 是 1,所以你可以说——在 1 和 2 之间切换——</p>
x = 3-x
def manipulate(x):
return x+1 if x==1 else x-1
myVal = 10
myVal = manipulate(myVal)
print myVal
>>> 9
或者:
manipulate = lambda x: x+1 if x==1 else x-1
myVal = manipulate(myVal)
print myVal
>>> 9
或者更短的单行:
x = x - 1 + (x==1) * 2