Python基础:函数与参数详解
需积分: 1 28 浏览量
更新于2024-08-04
收藏 8KB TXT 举报
"Python基础知识,包括函数的定义与调用、return语句的作用、参数传递方式、形参定义以及全局变量和局部变量的概念。"
在Python编程中,函数是一种可重用的代码块,用于执行特定任务。在给定的描述中,我们看到函数的定义如下:
```python
def fn():
pass
```
这里的`def`关键字用于定义函数,`fn`是函数名,`pass`是一个空语句,表示函数没有实际操作。调用函数可以通过其名称`fn()`完成。
`return`语句在函数中起到至关重要的作用。当遇到`return`时,函数的执行停止,并将后面的表达式(如果有的话)的结果返回给调用者。如果没有任何表达式,如`return None`,则返回`None`。
在Python中,参数传递有两种主要方式:位置传参和关键字传参。位置传参是按照函数定义中的参数顺序传递,而关键字传参允许我们通过参数名指定值。例如:
```python
def fn(a, b, c):
pass
fn(1, 2, 3) # 位置传参
fn(a=1, c=3, b=2) # 关键字传参
```
函数形参的定义方式多样,包括位置形参、星号元组形参(*args)、命名关键字形参(**kwargs)等。星号元组形参用于收集未命名的额外参数,双星号字典形参用于收集额外的关键字参数。
缺省参数允许我们在函数定义时为参数提供默认值,使得调用函数时可以不提供这些参数的值:
```python
def fn(a, b=2):
pass
```
在这个例子中,如果调用`fn(1)`,`b`的值将是默认的2。
接下来,我们转向全局变量和局部变量。局部变量是在函数内部定义的变量,仅在该函数内部有效,如形参。它们在函数调用时创建,调用结束时销毁。而全局变量是在函数外部定义的,整个模块内的函数都可以访问。但是,要注意的是,虽然全局变量可以读取,但在函数内部直接赋值不会改变全局变量,除非使用`global`关键字声明。
```python
a = 1 # 全局变量
def func():
a = 2 # 这里创建了一个新的局部变量a,而非修改全局变量a
print(a) # 输出局部变量a的值
func() # 输出2
print(a) # 输出1,因为全局变量a未被修改
```
`globals()`函数返回一个包含全局变量的字典,而`locals()`函数返回当前作用域(通常是函数内部)变量的字典。
函数本身也是一种对象,可以赋值给变量,作为参数传递,或者在其他函数内部定义。这种特性使得Python具有很高的灵活性,例如:
```python
def say_hello():
print("Hello")
greeting = say_hello
greeting() # 输出 "Hello"
def wrapper(func):
def inner():
print("Before")
func()
print("After")
return inner
new_greeting = wrapper(say_hello)
new_greeting() # 输出 "Before",然后 "Hello",最后 "After"
```
在这个例子中,`say_hello`函数被赋值给`greeting`,并且被用作`wrapper`函数的参数,创建了一个新的函数`inner`。
Python的函数机制、参数传递、变量作用域和函数作为对象的特性,构成了强大的编程工具,使得代码更易于理解和维护。
2023-04-27 上传
2023-04-27 上传
2023-04-27 上传
2023-04-27 上传
2023-04-27 上传
2023-04-27 上传
2023-04-27 上传
2023-04-27 上传
2023-04-27 上传
Java码库
- 粉丝: 2224
- 资源: 6175