Python if和elif的通用代码放在哪里?
对于以下示例:Python if和elif的通用代码放在哪里?,python,conditional,Python,Conditional,对于以下示例: if a == 100: # Five lines of code elif a == 200: # Five lines of code 五行代码很常见,重复使用如何避免? 我知道如何把它变成一个函数 或 还有其他更干净的解决方案吗?备选方案(1):将5行代码放在一个函数中,然后调用它 备选案文(2) 比您的代码稍微简单一点备选方案(1):将5行代码放在一个函数中,然后调用它 def five_lines(arg): ... if a in [1
if a == 100:
# Five lines of code
elif a == 200:
# Five lines of code
五行代码很常见,重复使用如何避免?
我知道如何把它变成一个函数
或
还有其他更干净的解决方案吗?备选方案(1):将5行代码放在一个函数中,然后调用它
备选案文(2)
比您的代码稍微简单一点备选方案(1):将5行代码放在一个函数中,然后调用它
def five_lines(arg):
...
if a in [100,200]:
five_lines(i)
备选案文(2)
比您的代码稍微简单一点记住,对于函数,您可以使用带有闭包的本地函数。这意味着您可以避免传递重复的参数,并且仍然可以修改局部变量。(只需小心本地函数中的赋值。另请参见Python 3中的
非本地
关键字。)
def five_lines(arg):
...
if a in [100,200]:
five_lines(i)
请记住,对于函数,可以使用带有闭包的局部函数。这意味着您可以避免传递重复的参数,并且仍然可以修改局部变量。(只需小心本地函数中的赋值。另请参见Python 3中的
非本地
关键字。)
我想说,第二个解决方案已经相当干净和简单了。把这5行放在一个简单的函数中会使它更干净。我想说第二个解决方案已经相当干净和简单了。将这5行放在一个简单的函数中会使它更干净。@paxdiablo:the
else
只是省略了多余的内容,因此在中使用。为什么在你看来这很可怕?我不太喜欢双重如果(这只是主观的东西,不是福音)。我更喜欢将任何大小合适的通用性重构成一个函数。@paxdiablo:theelse
只是省略了多余的部分,因此在中的用法仍然存在。为什么在你看来这很可怕?我不太喜欢双重如果(这只是主观的东西,不是福音)。我更喜欢将任何大小合适的通用性重构成函数。你是说if
而不是for
?你是说if
而不是for
?
def five_lines(arg):
...
if a in [100,200]:
five_lines(i)
def some_func(a):
L = []
def append():
L.append(a) # for the sake of example
#...
if a == 100:
append()
#...
elif a == 200:
append()
#...