独立性更好-您可以将b
与其他数据重用(例如生成其他数据的c()
)。还更清楚会发生什么-b
对您输入的数据进行操作,而不是对a
的某些“魔术”连接。
如果您更改了a()
,则可能还必须更改b()
才能继续使用a()
-多数民众赞成在紧密耦合(more...),通常是不希望的。
如果您确实有严格的依赖关系,并且只想为每个函数放置更少的代码,请考虑内部函数:
def getStringOfNumbersTimes2(numbers):
"""Returns a string containing the input numbers multiplicated by 2"""
def mult2():
"""Mults each number by 2."""
return [n*2 for n in numbers]
# create the string - with : in between numbers
return ' : '.join(map(str,mult2()))
print(getStringOfNumbersTimes2([1,2,3]))
print(getStringOfNumbersTimes2([9.42,8.31,7.2]))
输出:
2 : 4 : 6
18.84 : 16.62 :14.4
这是一个有争议的示例-仅当我永远不需要mult2
之外的getStringOfNumbersTimes2
并希望getStringOfNumbersTimes2
仅输出我给出的两倍时,我才会这样做。
,
所有情况始终取决于您正在使用的用例。
但是,在您上面共享的示例中,我想说第二种选择更好,因为那时方法a
和b
是独立的。
选项2的好处在于,您可以在多种情况下重复使用这些方法,因此b
现在只是期望data
,即使它来自{{1}或其他将来的方法。来自a
的数据也将可以在多个地方使用。
此外,第二个选项使为每个函数单独编写单元测试变得更加容易,并且看起来就像在使用TDD时将要实现的那种实现。
我希望它会有所帮助。
本文链接:https://www.f2er.com/3129130.html