zoukankan      html  css  js  c++  java
  • python swap

    swap里面的a,b 不会影响函数作用域外面的变量

    java也不可以的吧;python里面没有指针,你可以认为所有的东西都是指向的内容,但是不要试图去改变指针的值

    其实我觉得所有的对象都是不可变对象,所谓的可变对象,如列表等,只是常用的操作是可变操作而已(如:append)
    a[0] = 1也会变啊,这些改的并不是列表本身,而是列表中的元素
    数组本身的地址没变,但是里面的元素可变

    a = [1] 这样就完全改了
    所以没什么是可变的,都是不可变的,所谓可变并不是实际可变,只是常用操作没有改变

    只能传type* 或者vector

    哪有什么指针,都是对象

    go更混乱了

    def change(a):
    a.name = 'b'
    return a
    按照python的思路,肯定是这样的写法,函数就应该有明确返回

    java 列表、数组遇到多线程时,各种并发错误烦死人

    http://www.cnblogs.com/xiaoQLu/archive/2013/04/10/3011561.html

    按照python的思路,肯定是这样的写法,函数就应该有明确返回

    一句一句来,第一个val.append(100),并没有修改列表,只是往列表里面加一个元素,并不会引起列表的引用改变,外部nums的列表引用和内部val是同一个,所以nums=[0, 1, 100];而val = ['T', 'Z', 'Y'] 这一句,是完全改变了列表,列表归根究底是不可变的,所以此时val变成了一个全新的列表['T', 'Z', 'Y'],并且分配了一个地址,最后函数没有返回值,所以val在这个语句之后就会被回收,没有造成任何影响;

    //python不能修改引用(变量) 可以修改对象

    任何对象都是不可变的
    所谓的可变对象只是常用操作没有改变对象本身,只是改变某一个属性

    如果真要区分可变对象不可变对象,不如说是可哈希化和不可哈希化

    如人类 与 对象你自己
    对象(你自己)是不可变的,是具体的;但你的身高,体重等属性却是可变的

  • 相关阅读:
    linux的usr目录的全称是什么
    python多线程与多进程及其区别
    redis禁用危险命令
    测试文档
    mysql5.7.23windows安装
    Nginx如何处理手机端和PC端跳转不同页面
    nginx if多条件判断
    centos7单用户模式修改密码
    Django其四
    Django简单搭建编辑页面
  • 原文地址:https://www.cnblogs.com/ITniu/p/6472599.html
Copyright © 2011-2022 走看看