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. 在CentOS中使用 yum 安装MongoDB及服务器端配置

    转自 http://blog.csdn.net/zhangfeng19880710/article/details/20166853 一.准备工作: 运行yum命令查看MongoDB的包信息 [roo ...

  2. log buffer space事件(转)

    看了这篇文章: Oracle常见的等待事件说明http://database.ctocio.com.cn/tips/38/6669538.shtml 对于Log Buffer Space-日志缓冲空间 ...

  3. poj3171 Cleaning Shifts【线段树(单点修改区间查询)】【DP】

    Cleaning Shifts Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 4422   Accepted: 1482 D ...

  4. 徐州网络赛G-Trace【线段树】

    There's a beach in the first quadrant. And from time to time, there are sea waves. A wave ( xx , yy  ...

  5. VS2012/2013引用对话框的糟糕设计

    先看两张图: 1. 首次打开引用对话框(Reference Manager),Name显示不全: (图1) 2. 然后双击或拖动splitter,让Name显示全: (图2) 3. 下次再打开引用对话 ...

  6. HTTP监视器charles入门使用教程分享---http/s packet monitors---ubuntu installation

    charles --usage http://www.cnblogs.com/chenlogin/p/5849471.html 按照Charles的提示,PC打开 chls.pro/ssl下载得到一个 ...

  7. 初识MVCSharp

    MVCSharp其实是MVP模式 主要内容 ITask IView IController

  8. PhotoSwipe中文API(二)

    配置 选项是在键 - 值对添加作为参数传递给PhotoSwipe构造,例如通过: var options = { index: 3, escKey: false, // ui option timeT ...

  9. SchuledExecutorService 使用controller控制线程关闭

    1:SchuledExecutorService  使用controller控制线程关闭 package com.li.controller; import org.springframework.s ...

  10. redis.conf配置文件说明

    # Redis 配置文件 # 当配置中需要配置内存大小时,可以使用 1k, 5GB, 4M 等类似的格式,其转换方式如下(不区分大小写) # # 1k => 1000 bytes # 1kb = ...