a在GlobalDataBase的声明中分配了一个列表. GlobalDataBase的每个实例都以对同一列表的引用开始,我们将其称为“原始”列表.

当您在第一个示例中执行self.a = value时,为该实例或“self”替换对原始列表的引用,并引用您指定的列表值.创建的任何新实例仍将引用原始列表,这就是为什么gb2打印出一个空列表 – 原始列表,而不是[1,2] – 新列表.

让我们看看它是如何工作的,使用id:

声明后,GlobalDataBase保持对以下内容的引用:

id(GlobalDataBase.a)

Out[112]: 290675912L #Original

我们创建的任何实例都持有相同的引用:

gb1 = GlobalDataBase()

id(gb1.a)

Out[114]: 290675912L #Original

在copy_to_a之后,您可以看到它已更改:

gb1.copy_to_a([1,2])

id(gb1.a)

Out[116]: 290670536L #Changed!

但是gb2仍然有原始参考:

id(gb2.a)

Out[118]: 290675912L #Original

你说你理解了第二个例子,但为了完整性,当你做self.a.append(value [idx])时,你会追加到原始列表.如上所述,新实例引用了该列表,并“看到”该更改.

在这里我们可以看到引用没有改变:

gb1 = GlobalDataBase()

id(gb1.a)

Out[120]: 290675912L #Original

gb1.assign_to_a([1,2])

id(gb1.a)

Out[122]: 290675912L #Original

gb2 = GlobalDataBase()

id(gb2.a)

Out[124]: 290675912L #Original

python 共享数据_用Python共享全局数据相关推荐

  1. python集群_使用Python集群文档

    python集群 Natural Language Processing has made huge advancements in the last years. Currently, variou ...

  2. python 时间序列预测_使用Python进行动手时间序列预测

    python 时间序列预测 Time series analysis is the endeavor of extracting meaningful summary and statistical ...

  3. python 概率分布模型_使用python的概率模型进行公司估值

    python 概率分布模型 Note from Towards Data Science's editors: While we allow independent authors to publis ...

  4. 科学价值 社交关系 大数据_服务的价值:数据科学和用户体验研究美好生活

    科学价值 社交关系 大数据 A crucial part of building a product is understanding exactly how it provides your cus ...

  5. python哲学翻译_从 Python 之父的对话聊起,关于知识产权、知识共享与文章翻译...

    一.缘起 前不久,我在翻译 Guido van Rossum(Python之父)的文章时,给他留言,申请非商业用途的翻译授权. 过程中起了点小误会,略去不表,最终的结果是:他的文章以CC BY-NC- ...

  6. python 可视化界面_工具推荐 | 3维数据可视化

    高维数据是一种非常常见的数据类型,其中包含了多种属性.比如:数值模式输出结果通常包含多种物理参量及多个时次,还有一些空间位置信息.尽管高维数据非常常见,但是高维数据的分析一直是个挑战.那么如何才能有效 ...

  7. dataframe修改数据_利用Python进行数据分析(语法篇)

    一.数据 结构化数据: 1.多维数组--矩阵 2.表格型数据(关系型数据库中的数据) 3.通过关键列相连接的表 4.间隔平均或者不平均的时间序列 二.关于iPython 三.Numpy学习 numpy ...

  8. pandas 转化np数据_利用Python进行数据分析(语法篇)

    一.数据 结构化数据: 1.多维数组--矩阵 2.表格型数据(关系型数据库中的数据) 3.通过关键列相连接的表 4.间隔平均或者不平均的时间序列 二.关于iPython 三.Numpy学习 numpy ...

  9. python怎么存储数据_【Python】存储数据

    很多程序都要求用户输入某种信息,如让用户存储游戏首选项或者提供可视化数据,不管专注什么,程序都要将数据进行存储,那么如何存储呢? JSON(JavaScript Object Notation)格式最 ...

  10. python mysql 分页_利用python对mysql表做全局模糊搜索并分页实例

    在写django项目的时候,有的数据没有使用模型管理(数据表是动态添加的),所以要直接使用mysql.前端请求数据的时候可能会指定这几个参数:要请求的页号,页大小,以及检索条件. "&quo ...

最新文章

  1. java bip-39_bip39
  2. 【计算机网络】ISO/OSI模型
  3. python的命令解析getopt.getopt()函数分析
  4. 事业单位计算机初级考试科目一模拟试题,广东教师资格考试之科目一模拟题
  5. 学术科普 | 漫威电影中的智能大脑
  6. DIY一套10倍\20倍\30倍光学变焦高清航拍方案(变焦云台相机方案)
  7. HoloLens 2开发: Vuforia图片识别
  8. 开源docker管理平台rancher 安装部署
  9. BOM类型转换——>EBOM、MBOM、PBOM
  10. EOS价格震荡起伏,EOS生态数据不断上行
  11. 前端面试题,速看webP,把握住网页提速小细节!亲测可用!
  12. java学生成绩分90及格_Java基础练习:题目:利用条件运算符的嵌套来完成此题:学习成绩=90分的同学用A表示,60-89分之间的用B表示,60分以下 的用C表示。 - 菜鸟头头...
  13. linux搭建pptpd服务器,最简单的Linux系统上的pptpd服务器安装
  14. css选择器,什么是css选择器
  15. 米兰大学计算机科学,米兰大学
  16. 引入第三方sdk错误提示
  17. oh my zsh详细安装教程
  18. Vue 6. 列表渲染
  19. 03 分布式系统的技术栈
  20. Sql Server数据库基础教学

热门文章

  1. vlookup两个条件匹配_vlookup,你还是只会基础的单条件查找?
  2. html如何添加文档,如何在HTML中添加行
  3. python模块下载过程_常用的python模块及安装方法
  4. 移动端iphone抓包调试神器—Stream安装和使用(一)
  5. 【Python】pdf2image模块+poppler将PDF转换为图片
  6. falcon适配ldap密码同步
  7. perl6 HTTP::UserAgent (2)
  8. 一个成功的研发团队应具备的9大属性
  9. 【SpringMVC学习07】SpringMVC中的统一异常处理
  10. Untiy3D Material 材质系统