鱼C论坛

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

Python零基础003讲课后作业的问题

[复制链接]
发表于 2019-6-6 09:54:56 | 显示全部楼层 |阅读模式

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

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

x
2. 在不上机的情况下,以下代码你能猜到屏幕会打印什么内容吗?
>>> myteacher = '小甲鱼'
>>> yourteacher = myteacher
>>> myteacher = '黑夜'
>>> print(yourteacher)
答案是小甲鱼,请问就算myteacher后面变为了'黑夜',yourteacher也只会识别之前的赋值,而忽略之后的改变吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-6-6 10:02:01 | 显示全部楼层
python的赋值实际上是给一个内存中的地址贴上标签

>>> myteacher = '小甲鱼'   #myteacher指向地址1
>>> yourteacher = myteacher #yourteacher也指向地址1
>>> myteacher = '黑夜' #注意重新赋值会改变地址,myteacher指向地址2
>>> print(yourteacher)  #而yourteacher还是指向地址1
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-6-6 10:04:58 | 显示全部楼层
冬雪雪冬 发表于 2019-6-6 10:02
python的赋值实际上是给一个内存中的地址贴上标签

>>> myteacher = '小甲鱼'   #myteacher指向地址1

楼主可以通过id(myteacher)   id(yourteacher) 来查看变量得内存地址  会发现一些规律

@冬雪雪冬  重新赋值会改变变量地址  这是啥机制啊  也不像c里得指针
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-6-6 10:24:25 | 显示全部楼层
wp231957 发表于 2019-6-6 10:04
楼主可以通过id(myteacher)   id(yourteacher) 来查看变量得内存地址  会发现一些规律

@冬雪雪冬  重 ...

静态语言是先为变量申请内存空间,即使重新赋值还在原来的地址。而python则是将变量的值自动分配到一个地址,并将变量名指向它,某种意义讲有点像C的指针。
python的变量分为不可变变量和可变变量,区别就是能否在原地址改变。所谓不可变变量就像整数这类的,再次赋值会重新申请一个地址,而原地址的值如果没有其它变量名使用,则自动收回。而可变变量则是想列表的元素修改,sort.append等操作,此时列表的地址不变。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-6-6 10:27:22 | 显示全部楼层
冬雪雪冬 发表于 2019-6-6 10:24
静态语言是先为变量申请内存空间,即使重新赋值还在原来的地址。而python则是将变量的值自动分配到一个地 ...

谢了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-16 06:04

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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