python变量名在引用前必须赋值,python输出语句中引用变量

  python变量名在引用前必须赋值,python输出语句中引用变量

  引言:

  对于刚接触Python的同学来说,可能不太了解Python中参数赋值的机制:在Python中,对一个变量的赋值,实际上是修改了数据的引用。。这里有一些例子来帮助解释这个机制。

  首先我们来证明一下,对于变量的赋值实际上是修改了数据的引用这个描述:

  从ipython的运行结果可以看出,在给变量赋值的时候,其实只是给变量A的一个标签(数据引用),类似下图。

  当被赋值变量A赋给另一个新变量B时,实际上新变量B仍然是被赋值变量A对应的常数10的一个标签,类似下图。

  所以当我们改变A的值时,我们不会改变B的引用,而只是简单地将A改变为新值20的引用。这时,对应的示意图如下

  函数参数的传递:

  结论:这是Python中函数参数传递不同于其他语言的地方。它传递对应于参数的引用,而不是对应于参数的值。

  我们使用一个测试程序来帮助说明:

  【注:id函数返回的结果【注:python是该参数对应的内存地址】

  def printID(para):print(输入para的ID为{} 。format(id(para)))para=10 print( 10的id是{} 。format(ID(para)))printID(para)-输出结果:10的id是1746174320输入para的id是1746174320。可见,传参数的时候,真的是引用。

  函数返回值的传递:

  结论:函数在传递返回值的同时,也传递了该参数对应的数据的引用。

  我们使用一个测试程序来帮助说明:

  def printID():r=2print(2的id={} )。format(id(2)))返回rr=printID()print(r的id={} 。format(id(r))) -输出结果:2的ID=1746174064R的ID=1746174064。可以看出,函数的返回值实际上传递的是这个参数对应的数据。

  函数内部参数值的修改:

  结论:如果在函数中修改传入的参数,只会在函数中生效,不能改变传入的参数值:

  我们使用一个测试程序来帮助说明:

  def test(num):num=10 print( function的num={} )。format(num))GL _ num=1 test(GL _ num)print( num={ } 。format(gl_num)) -输出结果:函数的编号=10gl_num=1。为了便于更好的理解,我将用下图来说明:

  当函数中的语句num=10没有执行时,两个“标签”:num和gl_num的引用图是红线。执行num=10时,num指向10对应的内存地址,而gl_num指向的地址保持不变。此外,这也能从另一方面说明,函数中传递的参数与实参并不是同一个"标签",只是对于某一个地址的两个不同的"标签"。

  如果觉得我有地方讲的不好的或者有错误的欢迎给我留言,谢谢大家阅读(点个赞我可是会很开心的哦)~

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • python 中文unicode编码,python输出字符的unicode
  • python 中文unicode编码,python输出字符的unicode,Unicode和Python的中文处理
  • python输出两个数之间的整数,python编写程序,要求输入两个整数,求两数之和后输出
  • 字母在python中怎么表示,用python输出字母金字塔
  • python输出n×n的方格矩阵,python 输入矩阵
  • python自动换行快捷键,python输出自动换行怎么设置
  • python求两个给定正整数的最大公约数和最小公倍数,python输出最大公约数和最小公倍数
  • 如何用python输出九九乘法表,怎么用python打印九九乘法表
  • python100以内的素数之和是多少,python输出1000以内的素数以及这些素数之和
  • python输出清屏代码,python终端清屏命令
  • python输出fibonacci数列的前30项,编程求fibonacci数列前20项
  • 输出一个n阶的方阵python,python输出1到100的奇数和偶数
  • Python输出字符串长度,python获取字符串的长度
  • 用python输出1000以内所有的质数,python中输出100-200的质数
  • python输出1到100的素数,python求100到1000以内有多少个素数-
  • 留言与评论(共有 条评论)
       
    验证码: