7 函数(python)

1. 函数基础

函数是将一段代码封装起来,为了以后可以使用,比如Python内置的print函数和len函数。函数可以接受参数,并且可以返回一个值。

以下是定义一个函数的基本语法:

def function_name(parameter1, parameter2, ...):

# do something

return result

其中,

def:用于定义函数。

function_name:为函数取一个名字,用来调用函数。

parameter1, parameter2, ...:函数的参数,在函数内部可以使用这些参数。

return:用来返回函数的结果。

1.1 例子

下面我们来看一个简单的例子。

def add(a, b):

c = a + b

return c

result = add(1, 2)

print(result)

在上面的例子中,我们定义了一个名为add的函数,这个函数接受两个参数ab,然后在函数内部将它们相加,最后返回结果c。我们可以通过add(1, 2)来调用这个函数,这个函数返回的结果是3,并且赋值给了变量result,然后打印出来了。

1.2 参数传递方式

Python中传递参数的方式有两种:按值传递和按引用传递。

按值传递:在函数内部修改参数的值不会影响到函数外部的参数值。

按引用传递:在函数内部修改参数的值会影响到函数外部的参数值。

Python中,传递不可变对象的时候是按值传递的,传递可变对象的时候是按引用传递的。

1.3 可变参数

有时候我们希望函数可以接受任意数量的参数,这时候可以使用可变参数。

Python中有两种可变参数:

位置参数:用*args传递。

关键字参数:用**kwargs传递。

以下是可变参数的使用方法:

def function_name(*args, **kwargs):

# do something

下面是例子:

def add(*numbers):

total = 0

for number in numbers:

total += number

return total

result = add(1, 2, 3, 4, 5)

print(result)

在上面的例子中,我们定义了一个名为add的函数,这个函数接受任意数量的位置参数,并且将它们相加,最后返回总和。我们可以通过add(1, 2, 3, 4, 5)来调用这个函数,这个函数返回的结果是15,并且赋值给了变量result,然后打印出来了。

2. lambda函数

lambda函数也叫匿名函数,它是一种简单的可调用对象。

以下是lambda函数的基本语法:

lambda parameters: expression

其中,

lambda:用于定义lambda函数。

parameters:lambda函数的参数。

expression:lambda函数的返回值。

2.1 例子

下面我们来看一个使用lambda函数的例子。

add = lambda a, b: a + b

result = add(1, 2)

print(result)

在上面的例子中,我们定义了一个lambda函数,这个函数接受两个参数ab,然后返回它们相加的结果。我们可以通过add(1, 2)来调用这个函数,这个函数返回的结果是3,并且赋值给了变量result,然后打印出来了。

3. 闭包

Python中的闭包是一种特殊的函数。

闭包是指:一个函数可以访问另一个函数内部的变量。

闭包有一个特点,就是inner函数可以访问并使用outer函数的变量,而这些变量是不能被全局访问到的。这样就可以实现一些有状态的函数。

3.1 例子

下面我们来看一个使用闭包的例子。

def outer(a):

def inner(b):

return a + b

return inner

add_5 = outer(5)

result = add_5(3)

print(result)

在上面的例子中,我们定义了一个外部函数outer,这个函数接受一个参数a,然后返回一个内部函数inner。这个内部函数inner接受一个参数b,然后返回a + b的结果。

我们可以通过outer(5)来调用外部函数,这个函数返回了一个内部函数inner,然后将这个内部函数赋值给了变量add_5。我们可以通过add_5(3)来调用这个内部函数,这个函数返回的结果是8,并且赋值给了变量result,最后打印出来了。

4. 递归函数

递归函数是一种特殊的函数,它调用了自身。

4.1 例子

下面我们来看一个使用递归函数的例子。

def factorial(n):

if n == 0:

return 1

else:

return n * factorial(n-1)

result = factorial(5)

print(result)

在上面的例子中,我们定义了一个递归函数factorial,这个函数接受一个参数n,然后返回n的阶乘。如果n等于0,则直接返回1,否则计算n * factorial(n-1)

我们可以通过factorial(5)来调用这个函数,这个函数返回的结果是120,并且赋值给了变量result,最后打印出来了。

5. 装饰器

在Python中,装饰器是一种特殊的函数,它可以修改其他函数的行为。

装饰器的主要作用是用来修饰其他函数,用来增加或修改其他函数的功能。

5.1 例子

下面我们来看一个使用装饰器的例子。

def my_decorator(func):

def wrapper():

print("Before the function is called.")

func()

print("After the function is called.")

return wrapper

@my_decorator

def say_hello():

print("Hello!")

say_hello()

在上面的例子中,我们定义了一个装饰器my_decorator,这个装饰器接受一个函数func作为参数,并且返回一个内部函数wrapper。在内部函数中,先输出一个"Before the function is called."的提示,然后调用了func函数,最后输出一个"After the function is called."的提示。

然后我们又定义了一个函数say_hello,并且在前面加上了@my_decorator的装饰器。这样调用say_hello()时,就会先执行装饰器中的代码,然后再执行say_hello函数中的代码。最终输出的结果是:

Before the function is called.

Hello!

After the function is called.

6. 模块化编程

模块化编程是指将程序分解成若干个模块,每个模块完成一个特定的功能。

Python中,模块是一种特殊的文件,它包含了一组相关的函数、类和变量。我们可以在其他Python文件中使用import语句导入这个模块,从而可以使用这个模块中的函数、类和变量。

6.1 例子

下面我们来看一个模块的例子。

新建一个文件mymodule.py,并且写入以下内容:

def say_hello():

print("Hello, World!")

下面我们创建一个新的文件program.py,并且写入以下内容:

import mymodule

mymodule.say_hello()

在上面的例子中,我们创建了一个名为mymodule的模块,并且在mymodule.py文件中定义了一个名为say_hello的函数。然后在program.py文件中,使用import语句导入了mymodule模块,并且调用了mymodule.say_hello()函数。

7. 总结

在Python中,函数是将一段代码封装起来,为了以后可以使用。Python中还有lambda函数、闭包、递归函数和装饰器等特殊的函数。模块是一种特殊的文件,它包含了一组相关的函数、类和变量。

函数是Python编程中最基础、最重要的部分之一,因此我们需要深入理解并且熟练掌握函数的用法。

免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。猿码集站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。

后端开发标签