博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
函数—参数会变吗
阅读量:4467 次
发布时间:2019-06-08

本文共 798 字,大约阅读时间需要 2 分钟。

一 参数是字符串(以及数字和元组)

字符串(以及数字和元组)是不可变的,无法被修改即只能被新值覆盖

1 def change(n):2     n='gumby'3         4 name='entity'5 change(name)6 print(name)7 #输出  entity

如果想要更改name 需要函数change(n)加上return n;将name重新赋值(name=change(name)) 

n声明在函数内 所以函数结束后 n 就会消失

二 参数是可变的数据结构

例如 列表·

1 def try_to_change(n):2     n[0]='mr.gumby'3      4 name=['mrs.sisly','six']5 try_to_change(name)6 print(name)  #['mr.gumby', 'six']

在这里,可变的数据结构作为参数明显地发生了改变,为了不让原先的列表name发生变化,我们需要一个name的副本;

而 当序列做切片的适合,返回的切片总是一个副本。

1 name=['mrs.sisly','six']2 n=name[ : ]

现在n 和 name 是两个独立的列表,其值相等,并且改变其中一个不会影响到另外一个,

1 def try_to_change(n): 2     n[0]='mr.gumby' 3      print(n) 4 name=['mrs.sisly','six'] 5 try_to_change(name[:]) 6 print(name)

结果:

1 # ['mr.gumby', 'six']   n2 # ['mrs.sisly', 'six']     name

 

    

转载于:https://www.cnblogs.com/Sky-Aces/p/8455554.html

你可能感兴趣的文章
mysqld诡异crash
查看>>
eclipse启动tomcat出现内存溢出错误 java.lang.OutOfMemoryError: PermGen space
查看>>
POJ 1564 经典dfs
查看>>
PLSQL触发器
查看>>
PHP 格式化时间date()
查看>>
android开发之路10(文件的读写)
查看>>
在Spring Boot中输出REST资源
查看>>
Arcgis for Silverlight学习(一)
查看>>
关于点击复选框实现全选
查看>>
[Codeforces]852I - Dating
查看>>
Asp.net MVC入门视频教程
查看>>
[Web前端系列之_Firebug_00_序]
查看>>
用NPOI完成公司任务(主要就是导入导出操作)
查看>>
Cracking the Coding Interview Q1.1
查看>>
汇编指令解释大全【转载】
查看>>
MySQL5.6.11安装步骤(Windows7 64位)
查看>>
使用Batch批量添加数据
查看>>
性能分析方法
查看>>
Solution for XPROG-M Unknown command Software error
查看>>
php--isset()、is_null() 、empty()
查看>>