Python基础教程第六章 6.3.1 函数改变

Python基础教程第六章 6.3.1 函数改变,第1张

概述Python基础教程第六章 6.3.1 函数改变

Python基础教程第六章 6.3.1 函数改变       

def try_to_change(n):    n = 'Mr.Gumby'name = 'Mrs.Entity'try_to_change(name)print name

结果:

Mrs.Entity

在try_to_change内,参数n获得新值,但是它没有影响到name变量。n实际上是个完全不同的变量,具体的工作方式类似下面这样:

name = 'Mrs.Entity'n = namen = 'Mr.Gumby'print name

结果:

Mrs.Entity

结果显而易见。当变量n改变点时候,变量name不变。同样,当在函数内部把参数重绑定(赋值)的时候,函数外的变量不会受到影响。字符串(以及数字和元组)是不可变,既无法被修改(也就是说只能用新的值覆盖)。

def change(n):    n[0] = 'Mr.Gumby'names = ['Mrs.Entity','Mrs.Thing']print change(names)print names

结果:

None['Mr.Gumby', 'Mrs.Thing']

不用函数调用写法:

names = ['Mrs.Entity','Mrs.Thing']n = namesn[0] = 'Mr.Gumby'print names

结果:

['Mr.Gumby', 'Mrs.Thing']

当两个变量同时引用一个列表的时候,它们的确是同时引用一个列表。

names = ['Mrs.Entity','Mrs.Thing']n = names[:]print nprint n is namesprint n == names

结果:

['Mrs.Entity', 'Mrs.Thing']FalseTrue

因为n和name包含两个独立(不同)的列表,其值相等。

如果现在改变n(就像在函数change中做的一样),则不会影响到names:

names = ['Mrs.Entity','Mrs.Thing']n = names[:]n[0] = 'Mr.Gumby'print nprint names

结果

['Mr.Gumby', 'Mrs.Thing']['Mrs.Entity', 'Mrs.Thing']


总结

以上是内存溢出为你收集整理的Python基础教程第六章 6.3.1 函数改变全部内容,希望文章能够帮你解决Python基础教程第六章 6.3.1 函数改变所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1198531.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存