本文纯属个人见解,是对前面学习的总结,如有描述不正确的地方还请高手指正~
且看如下例子:
>>> l = [1, 2, 3] >>> ll = l >>> ll.remove(1) >>> l [2, 3] >>> >>> l = [1, 2, 3] >>> ll = l[:] >>> ll.remove(1) >>> l [1, 2, 3] >>>
是否是有点大吃一惊,跟c 语言怎么不一样呢?!
>>>a = [1] >>>b = a >>>b[0] = 2 >>>a [2]
列表是可变象对型类,因此传递的时候,量变名b绑定的内存地址与a绑定的内存地址是统一地址。
>>> x = 1 >>> y = 1 >>> x is y True >>>
数值为不可变型类,x与y指向的是数值为1的统一内存地址。
对于类说来也是如此:
class b: x = [] def set(self): self.x.append(1) def get(self): return self.x for i in range(3): a = b() print b.__dict__ a.set() print a.get()
结果:
{'x': [], '__module__': '__main__', 'set': <function set at 0x7f89a319bcf8>, '__doc__': None, 'get': <function get at 0x7f89a319bd70>} [1] {'x': [1], '__module__': '__main__', 'set': <function set at 0x7f89a319bcf8>, '__doc__': None, 'get': <function get at 0x7f89a319bd70>} [1, 1] {'x': [1, 1], '__module__': '__main__', 'set': <function set at 0x7f89a319bcf8>, '__doc__': None, 'get': <function get at 0x7f89a319bd70>} [1, 1, 1]
python中,万物皆象对。python中不存在所谓的传值用调,一切传递的都是象对的引用,也可以认为是传址。
python中,象对分为可变(mutable)和不可变(immutable)两种型类。
元组(tuple)、数值型(number)、字符串(string)均为不可变象对,而字典范(dictionary)和列表型(list)的象对是可变象对。
>>>a = 1 #将名字a与内存中值为1的内存绑定在一起 >>>a = 2 #将名字a与内存中值为2的内存绑定在一起,而不是修改来原a绑定的内存中的值,这时,内存中值为1的内存地址引用计数-1,当引用计数为0时,内存地址被回收 >>>b = a #量变b执行与a绑定的内存 >>>b = 3 #创立一个内存值为3的内存地址与量变名字b行进绑定。这是a还是指向值为2的内存地址。 >>>a,b >>>(2,3)
python数函参数的默认值与此的关系及例子,详见 python tips - 意注 python 数函参数的默认值:http://www.cnblogs.com/congbo/archive/2012/11/29/2794413.html
考参:
http://thomaschen2011.iteye.com/blog/1441254
http://www.cnblogs.com/evening/archive/2012/04/11/2442788.html
文章结束给大家分享下程序员的一些笑话语录: 乔布斯:怎么样还是咱安全吧!黑客:你的浏览器支持国内网银吗?苹果可以玩国内的网游吗乔布斯:......不可以黑客:那我研究你的漏洞干嘛,我也需要买奶粉!
相关推荐
GUI开发-如何对QListWidget列表进行数据绑定-Python实例源码.zip
GUI开发-如何对QTableWidget表格进行数据绑定-Python实例源码.zip
assistant-sdk-python, Google助手API的示例和绑定 面向设备的 --python这个存储库包含了用于的 python 插件软件包。要开始,请参见以下开发人员指南:Google助手库简介。Google助理服务服务简介。电子邮件内容...
tika-python 绑定到 Apache Tika REST 服务 Python binding to the Apache Tika REST services Apache Tika 库的 Python 端口,可使用 Tika REST 服务器使 Tika 可用。这使得 Apache Tika 可作为 Python 库使用,可...
Tika-Python是与Apache Tika:trade_mark:REST服务绑定的Python,允许在Python社区中本地调用Tika。 tika-python Apache Tika库的Python端口,可通过Tika REST Server使Tika可用。 这使得Apache Tika可以作为Python库...
如果您希望从源代码编译绑定以启用其他模块(例如CUDA),请查看手动构建部分。 安装及使用 如果您已经安装了OpenCV先前/其他手动安装版本(=未通过pip进行安装)(例如,Python站点软件包根目录中的cv2模块),请...
liboqs-python:liboqs的Python 3绑定 liboqs-python提供了一个Python模块,可通过liboqs提供抗量子密码算法。概述开放量子安全(OQS)项目的目标是开发和制作抗量子密码技术并对其进行原型设计。 liboqs是一个用于...
ffmpeg-python:FFmpeg的Python绑定 概述 那里有大量的Python FFmpeg包装器,但它们似乎缺乏复杂的过滤器支持。 ffmpeg-python适用于简单和复杂的信号图。 快速开始 水平翻转视频: import ffmpeg stream = ffmpeg ...
C ++多维数组库的Python绑定。 xtensor是用于多维数组的C ++库,支持numpy样式的广播和惰性计算。 xtensor-python启用了xtensor-python所有好处, xtensor在C ++中就地使用numpy数组 C ++通用功能和广播 符合STL的...
Skia Python绑定 Python绑定到。 基于绑定。 当前,绑定正在积极开发中。 安装 二进制包可在PyPI上使用: pip install skia-python 支持平台: Linux x86_64 苹果系统 Windows x86_64 对于Linux平台,必须...
v20-python-samples, 使用 v20 python 库的示例 python 代码 v20-python-samples这个 repo 包含一套 python 示例代码,desmonstrates使用 oanda REST API的v20,以及 python的oanda绑定的v20.设置以下过程描述了如何...
hexrays-python, Hexrays反编译器的python 绑定 Hexrays反编译的 python-绑定作者:EiNSTeiN_ einstein@g3nius.org注意:这个插件已经被合并到了IDAPython中。在这里获取最新版本: https://code.google.com/p/id
第17周-第16章节-Python3.5-JQuery 事件绑定的方式.avi
Api-python.zip,bigml的python绑定iobigml python绑定,一个api可以被认为是多个软件设备之间通信的指导手册。例如,api可用于web应用程序之间的数据库通信。通过提取实现并将数据放弃到对象中,api简化了编程。
第16周-第23章节-Python3.5-Dom绑定时间的另外一种方式.avi
这些库通过awscrt包( )( )绑定到Python。 跳到:安装最低要求Python 3.5+从PyPI安装python3 -m pip install awsiotsdk从源安装git clone ...
PyO3: Python解释器的Rust绑定 Python 解释器的 PyO3 Rust 绑定。 用户指南 API 文档 Cargo 包:pyo3 PyO3 在 Apache-2.0 许可下获得许可。 Python 是根据 Python 许可证获得许可的。 支持的 Python 版本:Python...
ffmpeg-python: FFmpeg的Python绑定 - 拥有复杂的过滤支持
vedis-python, Vedis嵌入式 NoSQL 数据库的python 绑定 Vedis嵌入式 NoSQL 数据库的快速 python 绑定。 Vedis是一个有趣的。快速的嵌入式数据库,。查看 vedis python文档 。特性Vedis特性:嵌入式,零conf数据库...
pure-python-otr, 在 python 中,关闭记录协议实现 python这是纯 python 实现;它不绑定到 libotr 。安装 potr python 模块:sudo python setup.py install依赖性: pycrypto> = 2.