返回介绍

最初的字符串模块(在 Python 3.0 中删除)

发布于 2024-01-29 22:24:17 字数 1428 浏览 0 评论 0 收藏 0

Python的字符串方法历史有些曲折。大约Python出现的前十年,只提供一个标准库模块,名为string,其中包含的函数大约相当于目前的字符串对象方法集。为了满足用户需求,在Python 2.0时,这些函数就变成字符串对象的方法了。然而,因为有那么多人写了如此多的代码都依赖最初的string模块,所以为了保持向后的兼容性一直保留着它。

如今,你应该只使用字符串方法,而不是最初的string模块。事实上,最初的模块调用形式已经在Python 3.0中删除了。然而,因为你还是会在较旧的Python代码中看见这个模块,因此在这里要简单地看一下。

这种历史问题的结果就是,在Python 2.6中,从技术上来说,有两种方式可以启用高级的字符串操作:调用对象方法或者调用string模块函数,把对象当成自变量传递进去。例如,设定变量X为字符串对象,并调用对象方法:

这样通常等效于通过string模块调用相同的运算(如果已导入该模块):

这里是一个在实际应用中方法机制的例子:

在Python 2.6中,要通过string模块获取相同的操作,你需要导入该模块(至少在进程中要导入一次)并传入对象:

因为模块的实现方法是长久的标准,而且因为字符串是大多数程序的核心组件,你可能会在以后创建Python程序中看到两种调用模式。

不过,现在你应该使用方法调用而不是陈旧的模块调用。这样做有很好的理由,除了模块调用已经从Python 3.0版删除以外,还有一个理由,那就是模块调用法需要你导入string模块(而方法调用不需要导入)。此外,模块让调用在输入时需要多打几个字符(当你以import加载模块而不是使用from时)。最后,模块运行速度比方法慢(当前的模块把大多数调用对应到了方法,因此会导致占用额外的调用时间)。

最初的string模块本身保存在了Python 3.0中(而没有其同等的字符串方法),因为它包含了其他的工具,包括预定义的字符串常数,以及模板对象系统(此处省略的一个高级工具,请参考Python库手册以了解模板对象的细节)。不过,除非你真的想把代码从Python 2.6修改为使用Python 3.0,否则,就应该放弃基本字符串运算调用。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文