python 函数传参机制与使用方法

  • Post category:Python

Python 函数传参机制:

在 Python 中,函数传参的本质是将数据对象复制到内存中,然后将其传递给函数。因此,Python 函数的参数传递方式主要有两种,分别是传递可变对象和传递不可变对象。

传递可变对象:
当传递可变对象(列表、字典等)时,函数内部对这个可变对象的修改会影响到这个对象本身,因为传递的是对象的引用(即地址),函数内部对对象的修改会直接反映到这个地址上,因此这种传递方式被称为“引用传递”。

代码实例1:

def modify_list(l):
    l.append('new_item')
    return l

my_list = ['item1', 'item2', 'item3']
print(modify_list(my_list))
print(my_list)

输出结果:

['item1', 'item2', 'item3', 'new_item']
['item1', 'item2', 'item3', 'new_item']

以上代码中,我们定义了一个 modify_list() 函数,该函数的参数是一个可变对象 l,并在函数内部修改了它的值。在主程序中,我们创建了一个列表 my_list,将其作为参数传递给 modify_list() 函数,并将返回值打印出来。同时,我们也打印了 my_list 的值,可以发现,在函数内部对 my_list 进行的修改也反映到了主程序中。

传递不可变对象:
当传递不可变对象(数字、字符串、元组等)时,函数内部对这个不可变对象的修改不会影响到这个对象本身,因为传递的是对象的拷贝,只是将这个拷贝传递给了函数,而原对象并没有改变,因此这种传递方式被称为“值传递”。

代码实例2:

def modify_str(s):
    s = s + 'new'
    return s

my_str = 'string'
print(modify_str(my_str))
print(my_str)

输出结果:

stringnew
string

以上代码中,我们定义了一个 modify_str() 函数,该函数的参数是一个字符串 s,并在函数内部对它进行了修改。在主程序中,我们创建了一个字符串 my_str,将其作为参数传递给 modify_str() 函数,并将返回值打印出来。同时,我们也打印了 my_str 的值,可以发现,在函数内部对 my_str 进行的修改并没有影响到主程序中的值。

函数使用方法:

函数定义:
在 Python 中,函数定义的语法如下:

def function_name(arguments):
    #函数体
    return value

其中,def 是定义函数的关键字,function_name 是函数的名称,arguments 是函数的参数,return 是函数的返回值关键字,value 是返回给调用者的值。
注意:函数的参数可以有多个,在函数定义时,多个参数之间需要用逗号 , 分隔。

函数调用:
在 Python 中,函数调用的语法如下:

function_name(arguments)

其中,arguments 是传递给函数的参数列表,多个参数之间同样用逗号 , 分隔。如果函数有返回值,可以将其存储到变量中。

代码实例3:

def add(x, y):
    return x + y

result = add(1, 2)
print(result)

输出结果:

3

以上代码中,我们定义了一个 add() 函数,该函数接收两个参数,将它们相加并返回。在主程序中,我们将 add() 函数作为一个表达式使用,并将返回值存储到变量 result 中,最后将 result 的值打印出来。