zoukankan      html  css  js  c++  java
  • Python 函数参数传递方式

    参数(自变量)在Python里都是按引用传递,也就是传递的是变量地址,(变量就是地址,没有类型,而关联的对象是有类型的)

    但是对于不可变变量,在函数内修改会申请新的内存空间,所以对外层函数没有影响,

    对于list变量,相当于操作同一块内存,则会影响外层函数。

      • 可变对象:list dict set
      • 不可变对象:tuple string int float bool
    1. #!/usr/bin/python  
    2.    
    3. # 可写函数说明  
    4. def changeme( mylist ):  
    5.    "修改传入的列表"  
    6.    mylist.append([1,2,3,4]);  
    7.    print "函数内取值: ", mylist  
    8.    return  
    9.    
    10. # 调用changeme函数  
    11. mylist = [10,20,30];  
    12. changeme( mylist );  
    13. print "函数外取值: ", mylist  

    传入函数的和在末尾添加新内容的对象用的是同一个引用。故输出结果如下:

    1. 函数内取值:  [10, 20, 30, [1, 2, 3, 4]]  
    2. 函数外取值:  [10, 20, 30, [1, 2, 3, 4]]  

    好,看到这里,自己亲手测试一下,代码: 

    1. def printme(age,str):  
    2.     str = 'str changed!'  
    3.    age=25
    4.     print age,str  
    5.     return  
    6.   
    7. str = 'ori str'  
    8. age = 23  
    9. printme(age,str)  
    10. print age,str  

    输出结果:

    1. 25 str changed!  
    2. 23 ori str  
  • 相关阅读:
    负外边距--转载
    研究Dropbox Server端文件系统
    Bluetooth Profile for iPhone from the functional perspectives
    Somebody That I Used to Know
    复合查询
    聚合查询
    Filter查询
    ES基本查询
    ES版本控制
    ES基本操作
  • 原文地址:https://www.cnblogs.com/lnas01/p/5977227.html
Copyright © 2011-2022 走看看