我想知道什么时候应该使用函数,因为我看到很多人制作函数来继续代码而不是解析参数并返回结果。
我的意思是这样的功能:
def foo():
print("How are you?")
print("Hi.")
foo()
(这段代码是无意义的,不切实际的。只是一个例子。)
为什么我们要使用函数而不是将代码放在一个连续的地方?
什么更容易阅读和维护?
版本 1:
db = init_database()
connect_to_database(db)
target = 'funny_cats'
cats = db.fetch(target)
版本 2:
5000 lines of code resembling the bodies of the above function calls
什么更容易阅读和维护?
版本 1:
for user in lots_of_users:
if not polite(user):
ban(user)
版本 2:
for user in lots_of_users:
30 lines of code for body of polite
30 lines of code for body of ban
考虑到您希望在程序的不同位置执行同一段代码。
some_function()
[100 lines]
some_function()
[100 lines]
[conditional branch possibly calling some_function()]
使用函数,您只需在所需位置调用该函数。没有函数,你需要到处复制代码。当您想要更改这些代码块的行为时,您必须寻找复制代码的所有位置,而不仅仅是调整一个功能。如果您错过了一个位置,则会引入一个错误。
函数是 Python 中的第一类对象,这是因为它们的行为就像任何其他更琐碎的对象一样 - 您可以将它们放在列表中或将它们用作其他函数的参数。
这允许您将函数视为可以由其他代码段动态执行的自包含代码段,例如通过将排序标准传递给内置sorted
函数。
>>> def criterion(sequence):
... return sequence[-1]
...
>>> list_of_sequences = [(1, 2), (5, -1), (2, 10)]
>>>
>>> sorted(list_of_sequences, key=criterion)
[(5, -1), (1, 2), (2, 10)]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句