Python 是一门面向对象的编程语言,其中定义函数是一项非常重要的功能。下面,我将详细讲解 Python 定义函数的规则。
1. 定义函数的基本语法:
在 Python 中定义函数遵循以下基本语法:
def function_name(parameters):
"""docstring"""
statement(s)
其中,function_name
表示函数名称,parameters
是函数的参数列表,可以为空;docstring
是函数的描述字符串,可以为空;statement(s)
是函数要执行的语句。
例如,定义一个打印人名的函数:
def print_name(name):
"""这是一个打印名字的函数"""
print("Hello, " + name)
调用该函数:
print_name("John") # 输出:Hello, John
2. 函数的参数传递方式:
Python 中函数的参数传递方式有两种:值传递和引用传递。当调用函数时,按照参数列表的顺序依次传递实参,如果是不可变类型则是值传递,如果是可变类型则是引用传递。
例如,定义一个函数,传入一个列表:
def change_list(mylist):
"""这是一个修改列表的函数"""
mylist.append("orange")
print("修改后的列表:", mylist)
调用该函数:
fruits = ["apple", "banana"]
change_list(fruits)
print("原始列表:", fruits)
输出结果为:
修改后的列表: ['apple', 'banana', 'orange']
原始列表: ['apple', 'banana', 'orange']
可见,在函数中修改列表后,原列表也被修改了。
3. 函数的返回值:
Python 中函数的返回值使用 return
语句来实现,return
后面可以跟一个表达式,返回表达式的值。如果没有返回值,则可以省略 return
语句。
例如,定义一个求和函数:
def add_numbers(a, b):
"""这是一个求和函数"""
result = a + b
return result
调用该函数:
print(add_numbers(1, 2)) # 输出:3
4. 参数默认值:
Python 中函数可以设置参数的默认值,调用函数时如果不传递参数,则使用默认值。设置默认值的参数必须在参数列表的最后。
例如,定义一个函数,传入两个参数,其中第二个参数有默认值:
def print_info(name, age=18):
"""这是一个打印个人信息的函数"""
print("Name:", name)
print("Age:", age)
调用该函数:
print_info("Tom") # 输出:Name: Tom, Age: 18
print_info("John", 20) # 输出:Name: John, Age: 20
5. 可变参数:
Python 中的可变参数指的是传入的参数个数是可变的,使用 *args
来实现。在函数内部,可以使用一个元组来接收所有传入的参数。
例如,定义一个函数,传入任意个数的参数,打印参数值:
def print_args(*args):
"""这是一个打印任意个数参数的函数"""
for arg in args:
print(arg)
调用该函数:
print_args("Tom", "John", "Mary") # 输出:Tom John Mary
6. 关键字参数:
Python 中的关键字参数指的是传入的参数是以键值对的形式传入的,使用 **kwargs
来实现。在函数内部,可以使用一个字典来接收所有传入的参数。
例如,定义一个函数,接收任意个数的关键字参数,打印参数名称及值:
def print_kwargs(**kwargs):
"""这是一个打印任意个数关键字参数的函数"""
for key, value in kwargs.items():
print("{0} = {1}".format(key, value))
调用该函数:
print_kwargs(name="Tom", age=20, city="Shanghai") # 输出:name = Tom, age = 20, city = Shanghai
以上就是 Python 定义函数的规则及其用法说明。