专栏首页python3python中传值和传地址问题

python中传值和传地址问题

在python中,还没有对这个知识点有一个详细的定义,很模糊的说明了,通过下面代码,可以观察出来,什么时候传的是值,什么时候传的是地址

有时候会发现自己的数据发生变化,可能就是这个原因,python的创作者,在定义的时候,并没有像java/c++深挖,比较模糊的说明了,这样一个关于值和地址的问题,也有我的知识不够宽广,没有涉及到这方面知识,如有偏差,敬请指正!

# 传值和传地址的区别
# 对于简单的数值,采用传值操作,即在函数内对参数的操作不影响外面的变量
# 对于复杂变量,采用传地址操作,此时函数内的参数和外部变量是同一份内容,
# 任何地方对此内容的更改都影响另外的变量或参数的使用

def a(n):
    n[2] = 300
    print(n)
    return None

def b(n):
    n += 100
    print(n)
    return None

an = [1,5,6,5,7,9]
bn = 5


print(an)
a(an)
print(an)


print(bn)
b(bn)
print(bn)

结果:

[1, 5, 6, 5, 7, 9]
[1, 5, 300, 5, 7, 9]
[1, 5, 300, 5, 7, 9]
5
105
5

通过结果观察:
对于简单的数值,采用的是传值操作,即在函数内对参数的操作不影响外面的变量
对于复杂的变量,采用传地址操作,此时函数内的参数和外部变量是同一份内容,任何地方对此内容的更改都会影响另外的变量或参数的使用
小伙伴们,注意啦!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • python-字典方法(dist)知识整

    py3study
  • python中if,for,while语

    for 变量 in range(10): 循环需要执行的代码 练习: #求1~100之间所有偶数之和

    py3study
  • Python基础-Python流程控制

    上篇文章 Python基础-基础使用 我们已经知道了Python解释器,Python的变量、和Python的输入输出、Python的注释和字符集,这篇文章,我们...

    py3study
  • 自学几小时,斯坦福AI推测并复现了元素周期表 | 华裔团队研究

    量子位
  • 宇宙是一个图网络?「全球最聪明的人」刚刚为物理基础理论指出了全新道路

    著名计算机科学、数学、理论物理学家斯蒂芬·沃尔夫勒姆(Stephen Wolfram)可能是世界上最聪明的人,他的研究经常被人们视为「神作」。但当昨天沃尔夫勒姆...

    机器之心
  • VS2017 打开并编译 cef client 项目进行调试

    最近接触 cef 非常多,有些功能没有做过就去 cef 官网的 cef_client demo 中查找示例,所以第一步是先把他给编译通过,网络上看过一些方法和例...

    我与梦想有个约会
  • 子集

    给定一组不含重复元素的整数数组nums,返回该数组所有可能的子集(幂集)。 说明:解集不能包含重复的子集。

    WindrunnerMax
  • 搞一个短信验证码登录,难吗?

    1、构造手机验证码:使用random对象生成要求的随机数作为验证码,例如4位验证码:1000~9999之间随机数;

    良月柒
  • 简化之道:容器与SDN

    SDN技术为简化接入网络、支持应用创造了机会,但是大多数公司即便采用了SDN技术,但是对待网络的态度仍然跟从前一样,造成的结果是网络仍然保持了原有的复杂性。容器...

    SDNLAB
  • 项目脚手架 - 《Spring Boot + MyBatis + MyBatis Generator》

    最近启动了一个新的项目发现,每当一个新项目的启动往往需要从头搭建一个“框架”,其中虽然很多基础代码可以Copy,但也会浪费不少时间。 基于这个情况,我打算在Gi...

    落跑架构师M

扫码关注云+社区

领取腾讯云代金券