栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Python如何确定两个字符串是否相同

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python如何确定两个字符串是否相同

从您发布的链接:

避免大型.pyc文件

那么为什么不

'a' * 21 is'aaaaaaaaaaaaaaaaaaaaa'
评价
True
呢?您还记得所有软件包中遇到的.pyc文件吗?好吧,Python字节码存储在这些文件中。如果有人写了这样的话会怎样
['foo!']* 10**9
?生成的 .pyc 文件将很大!为了避免这种现象,如果通过窥孔优化生成的序列长度大于20,则将其丢弃。

如果您有字符串

"HelloHelloHelloHelloHello"
,Python将必须按原样存储它(要求解释器检测字符串中的重复模式以节省空间可能太多了)。但是,当涉及到可以在解析时计算的字符串值时,例如
"Hello"* 5
,Python将这些值作为所谓的“窥孔优化”的一部分进行评估,后者可以决定是否值得对字符串进行预计算。由于
len("Hello" * 5) >20
,解释程序将其保留原样,以避免存储太多长字符串。

编辑:

如该问题所示,您可以在

peephole.c
函数的源代码中对此进行检查
fold_binops_on_constants
,最后将看到:

// ...} else if (size > 20) {    Py_DECREF(newconst);    return -1;}

编辑2:

实际上
,该优化代码最近已移至适用于Python
3.7的AST优化器中,因此,您现在必须调查一下

ast_opt.c
function函数
fold_binop
,该函数现在调用now函数
safe_multiply
,该函数检查字符串是否不超过
MAX_STR_SIZE
,新定义为4096。因此,似乎对于下一个版本的限制已大大提高。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/611190.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号