zoukankan      html  css  js  c++  java
  • python的变量传递

        python中变量都被视为对象的引用。python函数调用传递参数的时候,不允许程序员选择传值还是传引用,python参数传递采用的都是“传对象引用”的方式。 
        这种方式相当于传值和传引用的结合,如果函数收到的是一个可变对象(比如字典或者列表)的引用,就能修改对象的原始值——相当于通过“传引用”来传递对象;如果函数收到的是一个不可变对象(比如数字、字符串或元组)的引用,就不能直接修改原始对象——相当于“传值”来传递对象。 

    def Func(x):
        x = 20
    
    a = 10
    Func(a)
    print(a) 
    #输出10, 调用Func(a)时,Func内部的x变量指向整型对象10,
    #(即为整型对象10的引用)。在Func内部尝试修改一个不可变对象,
    #会使得Func内部的x指向一个新的对象20,而外部的变量a仍然指向不可变对象10.
    
    
    def Func2(x):
        x[0] = 20
    
    a = [1,2,3]
    Func2[a]
    print(a) 
    #结果为 [20, 2, 3]。
    


        python一般内部赋值变量的话,都是个引用变量,和c语言的传地址概念差不多。可以通过id(x)来查询x的内存地址。 
        如果 a=b的话,a和b的地址相同;如果只是想拷贝,就要用 a = b[:]

  • 相关阅读:
    使用net start mysql的时候出现服务名无效的原因及解决办法
    Appium的安装
    cpu
    单例模式
    Java中Synchronized的用法(简单介绍)
    java随机数Reandom(简单介绍)
    多线程面试题
    线程和进程有什么区别(简单介绍)
    java多线程(简单介绍)
    servlet三种方式实现servlet接口
  • 原文地址:https://www.cnblogs.com/gtarcoder/p/4969963.html
Copyright © 2011-2022 走看看