最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • python如何传递引用

    正文概述    2020-05-14   299

    python如何传递引用

    Python中函数参数是引用传递(注意不是值传递)。对于不可变类型,因变量不能修改,所以运算不会影响到变量自身;而对于可变类型来说,函数体中的运算有可能会更改传入的参数变量。

    引用传参一:

    >>> a = 100 #这里的a是不可变类型
    >>> def test(a):
    ...     a+=a 
            #这个式子有两层含义:1.这里可能是重新定义一个新的变量a,2.也有可能是修改a的值,但由于全局
            #变量a不能修改,所以此处是重新定义了一个a;
    ...     print("函数内:%d"%a)
    ...
    >>> test(a)
    函数内:200
    >>> print(a)
    100

    引用传参二:

    >>> a = [100] #这里的a是一个列表,是可变类型
    >>> def test(a):
    ...     a+=a #由于列表a是可变类型,所以这里是修改a
    ...     print("函数内:")
    ...     print(a)
    ...
    >>> test(a)
    函数内:
    [100, 100]
    >>> print(a)
    [100, 100]

    引用传参三:

    >>> a = 100
    >>> def test(a):
    ...     a=a+a  #最初为了好理解,所以可以认为a+=a等价于a=a+a,所以这里同引用传参一
    ...     print("函数内:%d"%a)
    ...
    >>> test(a)
    函数内:200
    >>> print(a)
    100

    引用传参四:

    >>> a = [100]
    >>> def test(a):
            #1. 先算 =号右边的
            #2. 算出来的结果是[100,100]
            #3. a = [100,100]
            #4. 让a变量指向了[100,100],即a保存的是[100,100]的引用(内存地址)
    ...     a=a+a #对于这种情况,等号左边的a是重新定义的一个量,此时a=a+a与a+=a不一样
    ...     print("函数内:")
    ...     print(a)
    ...
    >>> test(a)
    函数内:
    [100, 100]
    >>> print(a)
    [100]

    事实上,我们可以通过打印相应变量的地址来帮助我们理解,例如:

    a是int类型的情况:

    python如何传递引用

    a是列表的情况:

    python如何传递引用

    python学习网,免费的在线学习python平台,欢迎关注!


    起源地下载网 » python如何传递引用

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元