美文网首页
Python函数参数传递

Python函数参数传递

作者: 晨语凡心 | 来源:发表于2019-01-06 21:24 被阅读0次

1、Python中的可更改和不可更改对象

                在python中,strings, tuples, 和numbers是不可更改的对象,而list,dict等则是可以修改的对象。那么,这些所谓的可改变和不可改变影响着什么呢?

                代码第2行中,内存中原始的1对象因为不能改变,于是被“抛弃”,另nfoo指向一个新的int对象,其值为2;代码第5行中,更改list中第一个元素的值,因为list是可改变的,所以,第一个元素变更为2。见下图:

2、Python的函数参数传递:传值?引用?

             这时发生了什么,有一个int对象2,和指向它的变量nfoo,当传递给ChangeInt的时候,按照传值的方式,复制了变量nfoo的值,这样,a就是nfoo指向同一个Int对象了,函数中a=10的时候,发生什么?(还记得我上面讲到的那些概念么),int是不能更改的对象,于是,做了一个新的int对象,另a指向它(但是此时,被变量nfoo指向的对象,没有发生变化),于是在外面的感觉就是函数没有改变nfoo的值,看起来像C++中的传值方式。

              当传递给ChangeList的时候,变量仍旧按照“传值”的方式,复制了变量lstFoo 的值,于是a和lstFoo 指向同一个对象,但是,list是可以改变的对象,对a[0]的操作,就是对lstFoo指向的对象的内容的操作,于是,这时的a[0] = 10,就是更改了lstFoo 指向的对象的第一个元素,所以,再次输出lstFoo 时,显示[10],内容被改变了,看起来,像C++中的按引用传递。

3、总结

               若给函数传的是可更改对象(列表,字典),则参数的值会发生变化;若传的是不可更改对象(数字,字符串,元组),则参数的值不会发生变化。

相关文章

  • Python函数参数传递机制(超级详细)

    Python中,函数参数由实参传递给形参的过程,是由参数传递机制来控制的。通过学习《Python函数值传递和引用传...

  • Python 向对象传入任意数量的实参

    向函数传递任意参数 我们都知道,Python 可以通过 *params 向函数传递任意多个参数。举个栗子: 得到的...

  • Python 函数的参数传递\*args和\**kwargs

    Python 函数的参数传递*args和**kwargs 参数传递机制具有值传递(int、float等值数据类型)...

  • 深入函数参数

    函数参数 Python允许具有可变长参数的函数。使用*args作为函数参数,可以将任意数量的参数传递给该参数。然后...

  • 09:函数的参数类型

    python学习day_7: 函数的参数 1、必须参数(位置参数)调用函数时根据函数定义的参数位置来传递参数。 2...

  • python 参数传递总结

    参数的传递 python中函数的参数通过赋值的方式来传递引用对象。下面总结通过总结常见的函数参数定义方式,来理解参...

  • python的参数传递

    一、前言 在python中,函数参数的定义和传递有以下几种方式: 在python中,参数可以按照顺序传递,在调用函...

  • 常用数据结构和算法汇总

    Python List as belowPython语言特性1 Python的函数参数传递2 Python中的元类...

  • Python 函数(2)

    这篇主要总结Python函数参数传递。 背景### 函数的参数传递方式常见的有三种:1、传值调用;2、传指针调用;...

  • python函数调用的参数传递

    python的函数参数传递是"引用传递(地址传递)"。 python中赋值语句的过程(x = 1):先申请一段内存...

网友评论

      本文标题:Python函数参数传递

      本文链接:https://www.haomeiwen.com/subject/ovjerqtx.html