函数的语法及调用步骤
函数是直接在模块/py文件中定义的,与类方法、实例方法有区别。
1 ''' 2 一、 函数的语法: 3 def function_name(parameter1, parameter2, ...): 4 """函数文档字符串""" 5 # 函数体代码块 6 # ... 7 return value # 可选的返回值 8 9 1. 使用def关键字定义函数,并给函数指定一个名称。 10 2. 在函数名称后面跟着一对小括号,括号内可以包含零个或多个参数(也称为形式参数)。 11 3. 冒号:表示函数定义的结束,接下来是函数体的代码块,缩进表示属于函数的代码部分。 12 4. 函数体中的代码可以执行任意操作,包括条件语句、循环、变量赋值等。 13 5. 可以使用return语句来指定函数的返回值。如果没有return语句,函数将默认返回None 14 15 二、 函数的使用步骤: 16 1. 定义函数 17 2. 调用函数 18 ''' 19 20 # 1. 定义函数:有返回值 21 def add_numbers(x, y=0): 22 """返回两个数的和""" 23 return x + y 24 # 2. 调用函数 25 result = add_numbers(3, 4) # 调用函数,传递两个参数,输出: 7 26 print(result) 27 28 # 定义函数:无返回值 29 def greet(name): 30 """打印问候语""" 31 print(f"Hello, {name}!") 32 33 greet("Alice") # 调用函数,输出: Hello, Alice!
函数的嵌套及闭包
闭包的定义:闭包是一个函数对象,它包含了在定义它的环境中捕获的自由变量(外部函数中定义的变量)。
在Python中,当一个内部函数引用了外部函数的变量,并且这个内部函数在外部函数之外被调用时,就创建了一个闭包。其特点:
- 内部函数引用了外部函数的变量。
- 外部函数返回内部函数。
- 内部函数在外部函数之外被调用。
''' 函数的嵌套: 最佳实践: 1. 保持函数简洁和可读性: 函数应该尽量保持简短和专注,执行单一的任务。避免在一个函数中嵌套过多的函数,以免降低代码的可读性。 2. 提高代码的模块化性: 使用函数嵌套将代码分解为更小的、可重用的部分,提高代码的模块化性。这样可以使代码更易于理解、测试和维护。 3. 合理使用闭包: 当需要在内部函数中访问外部函数的变量并保持对其的引用时,可以使用闭包。但要注意闭包可能导致变量的生命周期延长,可能会占用更多的内存空间。因此,仅在需要时才使用闭包,并确保不会出现意外的副作用。 4. 使用函数参数传递数据: 如果内部函数需要外部函数的数据,应该通过函数参数进行传递,而不是直接访问外部函数的变量。这样可以更清晰地表示数据流动和依赖关系,并提高函数的可测试性和可维护性。 def outer_function(): """外部函数""" print("执行外部函数") def inner_function(): """内部函数""" print("执行内部函数") inner_function() # 在外部函数中调用内部函数 outer_function() # 调用外部函数,输出: 执行外部函数\n执行内部函数 闭包: def outer_function(x): """外部函数""" def inner_function(y): """内部函数""" return x + y # 访问外部函数的变量 return inner_function # 返回内部函数作为闭包 closure = outer_function(5) # 调用外部函数,返回闭包 result = closure(3) # 调用闭包,输出: 8 ''' # 需要注意的是,内部函数只能在外部函数内部访问,无法从外部函数之外直接调用。 # 这种封装可以防止内部函数与外部代码发生命名冲突,并隐藏内部实现的细节。 def outer_function(): """外部函数""" print("执行外部函数") def inner_function(): """内部函数""" print("执行内部函数") inner_function() # 在外部函数中调用内部函数 outer_function() # 调用外部函数,输出: 执行外部函数\n执行内部函数 # 2, 闭包 ''' outer_function接受一个参数x并返回一个闭包。 闭包inner_function访问了外部函数的变量x,并使用它来计算传入的参数y与x的和。我们可以将外部函数调用后返回的闭包赋值给一个变量closure,然后通过调用closure来执行闭包。 ''' def outer_function(x): """外部函数""" def inner_function(y): """内部函数""" return x + y # 访问外部函数的变量,闭包特点1 return inner_function # 返回内部函数作为闭包,闭包特点2 closure = outer_function(5) # 调用外部函数,返回闭包,x=5 result = closure(3) # 调用闭包,y=3, x+y = 5 + 3输出: 8 闭包特点3
标签:闭包,function,调用,定义,外部,内部,def,函数 From: https://www.cnblogs.com/allenxx/p/17537606.html