【发布时间】:2018-12-22 23:01:23
【问题描述】:
我在三个环境中测试了sys.getsize('') 和sys.getsize(' '),其中两个sys.getsize('') 给了我51 个字节(比第二个多一个字节)而不是49 个字节:
截图:
Win8 + Spyder + CPython 3.6:
Win8 + Spyder + IPython 3.6:
Win10(VPN 远程)+ PyCharm + CPython 3.7:
第一次编辑
我在 Python.exe 中进行了第二次测试,而不是 Spyder 和 PyCharm(这两个仍然显示 51),一切似乎都很好。显然我没有解决这个问题的专业知识,所以我把它留给你们:)
Win10 + Python 3.7 控制台与 PyCharm 使用相同的解释器:
Win8 + IPython 3.6 + Spyder 使用相同的解释器:
【问题讨论】:
-
我最迫切的问题是“为什么重要?”。但无论如何,Spyder 也会将其放入共享命名空间
-
@roganjosh 实际上我认为这并不重要,因为我作为数据分析师的工作并没有要求我深入研究对象模型,但我正在摸索以了解背后的原因这。我希望我有其他操作系统,例如Linux 对此进行测试。 BTW 这和你说的“共享命名空间”有关系吗?
-
我的工作也是数据科学家/数据分析师。这种行为无关紧要,但我不想使您的问题无效(好奇心很好)。 Spyder 有一个复杂的命名空间,你一定已经从你的主脚本观察到控制台中的东西是如何可用的......
-
@AndreyTyukin 不,我只是想看看其他人以前是否遇到过这种奇怪的事情,更重要的是,如果一个空字符串确实比一个字符的字符串多 1 个字节,这意味着我的对字符串对象的理解可能是完全错误的。如果您认为这很正常,那么对不起,因为我不是专业的软件开发人员,这对我来说确实很奇怪。现在我已经解决了这个问题,因为 Python.exe 控制台的第二次测试显示 49。
-
最有可能的候选者似乎是字符串在第一次需要时缓存使用 UTF-8 编码的版本。
标签: python