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不能修改引用(变量) 可以修改对象

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

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

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

python swap的更多相关文章

  1. Swap 2 Variables in Python

    In Python, it's concise, easy and faster to swap 2 variables compared in other Programming languages ...

  2. 【部分原创】python实现视频内的face swap(换脸)

    1.准备工作,按博主的环境为准 Python 3.5 Opencv 3 Tensorflow 1.3.1 Keras 2 cudnn和CUDA,如果你的GPU足够厉害并且支持的话,可以选择安装 那就先 ...

  3. [Leetcode][Python]24: Swap Nodes in Pairs

    # -*- coding: utf8 -*-'''__author__ = 'dabay.wang@gmail.com' 24: Swap Nodes in Pairshttps://oj.leetc ...

  4. 【原创】python实现视频内的face swap(换脸)

    1.准备工作,按博主的环境为准 Python 3.5 Opencv 3 Tensorflow 1.3.1 Keras 2 cudnn和CUDA,如果你的GPU足够厉害并且支持的话,可以选择安装 那就先 ...

  5. 06 swap命令,进程管理,rmp命令与yum命令,源码安装python

    作业一: 1)开启Linux系统前添加一块大小为15G的SCSI硬盘 2)开启系统,右击桌面,打开终端 3)为新加的硬盘分区,一个主分区大小为5G,剩余空间给扩展分区,在扩展分区上划分1个逻辑分区,大 ...

  6. leetcode 【 Linked List Swap Nodes in Pairs 】 python 实现

    题目: Swap Nodes in Pairs Given a linked list, swap every two adjacent nodes and return its head. For ...

  7. leetcode 【 Swap Nodes in Pairs 】python 实现

    题目: Given a linked list, swap every two adjacent nodes and return its head. For example,Given 1-> ...

  8. 888. Fair Candy Swap@python

    Alice and Bob have candy bars of different sizes: A[i] is the size of the i-th bar of candy that Ali ...

  9. 力扣—— Swap Nodes in Pairs(两两交换链表中的节点) python实现

    题目描述: 中文: 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表. 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换. 示例: 给定 1->2->3->4, ...

随机推荐

  1. 键盘event.which属性

    IE中,只有keyCode属性,而FireFox中有which和charCode属性 event.which属性对DOM原生的event.keyCode和event.charCode进行了标准化. f ...

  2. Eclipse 真机调试检测不到手机解决方案

    想用Eclipse真机调试,但是死活检测不到手机. 手机已经打开了usb调试模式. 开始用的华为Mate9,后面试了下小米,都不行. 在网上搜了一堆,什么安全驱动.adb占用.删除360手机助手.修改 ...

  3. TDD中的单元测试写多少才够?

    测试驱动开发(TDD)已经是耳熟能详的名词,既然是测试驱动,那么测试用例代码就要写在开发代码的前面.但是如何写测试用例?写多少测试用例才够?我想大家在实际的操作过程都会产生这样的疑问. 3月15日,我 ...

  4. 日志系统实战 AOP静态注入

    http://www.cnblogs.com/mushroom/p/3932698.html http://www.cnblogs.com/mushroom/p/4124878.html http:/ ...

  5. ios 在UIView上画图,线条

    1.画线条(实线,虚线) - (void)drawRect:(CGRect)rect {     CGContextRef context = UIGraphicsGetCurrentContext( ...

  6. spring低版本报错:java.lang.IllegalStateException: Context namespace element ‘annotation-config’ and its parser class [*] are only available on

    参考来源:http://blog.csdn.net/sunxiaoyu94/article/details/50492083 使用spring低版本(2.5.6),使用jre 8发现错误: Unexp ...

  7. js调试模式怎么看变量是在哪里定义的?

    1. 2.

  8. json包的不同导致结果不同

    json包的不同导致结果不同 引入如下json jar包 import org.json.JSONArray; 2 import org.json.JSONObject; 代码: JSONObject ...

  9. CentOS 目录结构详解

     linux 目录结构 linux目录树 /: 根目录,一般根目录下只存放目录,不要存放文件,/etc./bin./dev./lib./sbin应该和根目录放置在一个分区中/bin:/usr/bin: ...

  10. Django - 模型层 - 下

    一.多表 sql 单表 多表 多对一 多对多 一对一 =============================================== 一对多:Book id title price p ...