我在阅读这个大约是在2002年写的旧模块时看到了这一行代码 "import string"。Python在以前是否需要显式导入string模块才能使用字符串类型变量或其他什么东西?但我在代码中没有看到它被这样使用:
string.something
我在阅读这个大约是在2002年写的旧模块时看到了这一行代码 "import string"。Python在以前是否需要显式导入string模块才能使用字符串类型变量或其他什么东西?但我在代码中没有看到它被这样使用:
string.something
import string
但从未看到 string.something
,那么有人只是忘记删除未使用的导入。
虽然以前确实有一些在 string
中的东西现在是 str
对象的标准方法,但你仍然必须要么
string.
前缀,或者from string import <whatever>
语法。通常情况下,你只会在正确导入但从未“明确使用”的情况下看到 from __future__ import with_statement
或类似的东西 - 这是Python用于新语言功能的向前/向后兼容性触发器。
像Ambar所说,这似乎是一个冗余的导入,RoeeeK也正确地指出了大多数string
模块的函数现在都是字符串方法,即您可以使用"foobar".method()
而不是string.function("foobar")
。然而,有时明确导入模块仍然很有用;例如,在回调的情况下:
map(string.strip, [' foo ', ' bar '])
。
请注意,上述内容也可以通过[chunk.strip() for chunk in [' foo ', ' bar ']]
实现,因此在这种情况下实际上不需要导入string
。
map(str.strip, [' foo ', ' bar '])
- Ignacio Vazquez-Abrams在旧版本中,字符串模块确实更加有用,但在最近的版本中,大多数字符串模块函数也可以作为字符串方法使用。
这个页面会给你更好的了解: http://effbot.org/librarybook/string.htm