鱼C论坛

 找回密码
 立即注册
查看: 1139|回复: 4

[已解决]关于python中"对象的引用"的问题

[复制链接]
发表于 2018-5-3 09:45:02 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x

  1. class Test(object):
  2.     pass

  3. b = Test()

  4. print(id(b))

复制代码

上面的b是一个引用,指向了一个Texst对象,用id()可以知道对象的内存地址,那么这个b对象引用在内存有没有地址存着它呢,有的话,怎么样可以知道它的地址?
最佳答案
2018-5-3 11:07:15
Python_str 发表于 2018-5-3 10:59
那怎么样理解这个引用才正确,这个引用在内存中是一个怎么样的东西?

要换一种思路:
一般的编程语言都是以变量为导向,也就是先有变量,才能分配内存空间
但是python不同,是给数据分配好内存空间后用一个标签贴上即可,这也是为什么python中的变量可以随意修改指向的数据类型
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-5-3 10:29:38 | 显示全部楼层
一个标签是不需要额外的内存来存放其地址的

用c++中的引用变量取理解python中的引用即可
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-5-3 10:59:38 | 显示全部楼层
BngThea 发表于 2018-5-3 10:29
一个标签是不需要额外的内存来存放其地址的

用c++中的引用变量取理解python中的引用即可

那怎么样理解这个引用才正确,这个引用在内存中是一个怎么样的东西?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-3 11:07:15 | 显示全部楼层    本楼为最佳答案   
Python_str 发表于 2018-5-3 10:59
那怎么样理解这个引用才正确,这个引用在内存中是一个怎么样的东西?

要换一种思路:
一般的编程语言都是以变量为导向,也就是先有变量,才能分配内存空间
但是python不同,是给数据分配好内存空间后用一个标签贴上即可,这也是为什么python中的变量可以随意修改指向的数据类型
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2018-5-3 15:29:32 | 显示全部楼层
本帖最后由 Python_str 于 2018-5-3 15:30 编辑
BngThea 发表于 2018-5-3 11:07
要换一种思路:
一般的编程语言都是以变量为导向,也就是先有变量,才能分配内存空间
但是python不同, ...


谢谢你的回复 感谢  用globals() 方法就有点明白了点,引用只是一个字符串标签绑上了对象地址,存放在globals 这个字典里。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-3-11 03:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表