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

str.startswith如何真正起作用?

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

str.startswith如何真正起作用?

从技术上讲,没有理由不接受其他序列类型。该源代码大致做到这一点:

if isinstance(prefix, tuple):    for substring in prefix:        if not isinstance(substring, str): raise TypeError(...)        return tailmatch(...)elif not isinstance(prefix, str):    raise TypeError(...)return tailmatch(...)

tailmatch(...)
实际匹配在哪里工作)。

因此,是的,任何可迭代的操作都会对该

for
循环起作用。但是,所有其他使用多个值的字符串测试API(以及
isinstance()
issubclass()
)也只接受元组,这告诉您作为API的用户可以安全地假定该值
不会被突变 。您不能变异元组,但理论上该方法可以变异列表。

另请注意, 通常 测试固定数目的前缀或后缀或类(对于

isinstance()
issubclass()
);该实现不适用于 大量
元素。元组表示您的元素数量有限,而列表可以任意大。

接下来,如果可以接受任何可迭代或序列类型,则将包括字符串;单个字符串 也是 一个序列。那么,应该将单个字符串参数视为单独的字符还是作为单个前缀?

因此,换句话说,序列不会被更改,与其他API一致,限制了要测试的项目数量以及消除了关于单个字符串的歧义性,这是对自我文档的限制论据应予处理。

注意,这是在“ Python
Ideas”列表中提到的。看到这个线程; Guido van
Rossum的主要论点是,您要么是单个字符串的特殊情况,要么是仅接受一个元组。他选择了后者,因此不需要更改它。



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

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

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