猿问

1.请给出str对象"中文编程"的引用计数 a = "中文编程"

这个是什么意思求解释   或者有一起学习的 Q我

Myworld3464055
浏览 1601回答 2
2回答

Jenkins_lee

当对象被创建并赋值或引用给n个变量时(n为正整数),该对象的引用计数就为n。例:x = 3.14  #创建浮点型对象3.14并指向变量x,即引用计数为1y = x        #创建浮点型对象3.14的别名为变量y,引用计数+1,即为2。总之,对象的引用计数增加有以下几种情况:对象被创建:x = 3.14对象别名被创建:y = x作为参数传递给函数:round(x)成为容器对象的元素:mylist = [1 , x , ' abc ']当引用计数为为0时,对象将被回收---------------------------------------------------------a = "中文编程"   #结合上面所述,创建了字符串对象并指向变量a, 即引用计数为1

清波

六.已知如下代码________a = "中文编程" b = a c = a a = "python编程" b = u'%s' %a d = "中文编程" e = a c = b b2 = a.replace("中","中")请给出str对象"中文编程"的引用计数请给出str对象"python编程"的引用计数这个是 题主的问题的完整版吧?这就要说到 Python 的变量存储机制了, 一般来说,Python 的变量名 和变量值 被形容为 “标签式”: 变量名是标签,变量值是 一个贴着某些(个)标签的物体, 比如上面的代码中的   字符串对象 “中文编程” 就是变量值,也就是 物体。#第一次赋值给a, 那么就是在 “中文编程”上贴了一个标签 “a”。 #后面的 b=a, 则是在 “中文编程”上又贴了一个标签b。 #c = a , 同理,省略。 #a = "python编程" 这句 就是将a标签从"中文编程" 上撕了下来,贴到了"python编程"上,但是注意 b, c 任然 # 贴在 "中文编程"上。 # b = u'%s' %a,此处 标签b也从"中文编程"上撕了下来,贴到了 "python编程"上面, 这个需要用 内置函数 id# 来验证。 # d = "中文编程" , 这一句比较有迷惑性,看着像是在"中文编程" 这个物体上 又贴了一个标签d, 但是实际上是,# 重新建立了一个"中文编程" ,并且贴了一个标签d. # e = a, 没什么可解释的, 贴标签。 # c = b, 同上。 # b2 = a.replace("中","中"), 需要说明, 这一句 等同于 b2 = a。恩, 至于问题 留着题主自己数数吧, 原理基本上就是这样了。有什么不对的地方,欢迎大家指正。另外,有一点需要说明, 在 上面解释中 , 我们说 a = "中文编程",d = "中文编程", 是 新建对象,并且贴标签, 也就是说变量a 和变量d 不是指向同一个对象, 但是 对于一些比较小的整数(Python3.x 中是 -5 到 256) 则是直接贴标签, 而没有新建int对象.
随时随地看视频慕课网APP

相关分类

Python
我要回答