码迷,mamicode.com
首页 > 其他好文 > 详细

函数—参数会变吗

时间:2018-02-20 19:20:59      阅读:132      评论:0      收藏:0      [点我收藏+]

标签:hang   pre   print   margin   切片   data   div   gpo   style   

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

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

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‘]   n
2 # [‘mrs.sisly‘, ‘six‘]     name

 

    

函数—参数会变吗

标签:hang   pre   print   margin   切片   data   div   gpo   style   

原文地址:https://www.cnblogs.com/Sky-Aces/p/8455554.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!