2011-09-10 48 views
5

所以我从2002年左右开始阅读这个旧模块,它有这一行“导入字符串”。 Python是否需要您在显式导入字符串模块之前才能够使用字符串类型变量或其他内容?我没有看到它在代码中使用这样的:python“string”模块?

string.something 
+1

它仍然是:http://docs.python.org/library/string.html – NullUserException

回答

2

如果你看到一个import string,但从来没有看到string.something,有人只是忘了删除未使用的导入。

虽然使用到一些东西string是现在str对象的标准方法,你还是得要么

  1. string.前缀他们导入库后,或
  2. 使用from string import <whatever>语法。

通常情况下,唯一的时候,你会看到一些正确导入,但从来没有“明确地使用”被from __future__ import with_statement之类 - 的向前/向后兼容性触发器使用的Python新的语言功能。

0

很好,在旧版本的string模块的确是有用得多,但在最近的版本中大部分的字符串模块的功能是可用也可作为字符串方法..

这个页面会给你一个更好的外观: http://effbot.org/librarybook/string.htm

-1

像安巴尔说,这似乎是多余的导入和RoeeeK也说得对,大部分string模块的功能是同时串的方法,即你可以做"foobar".method()而不是string.function("foobar")。但是,有时明确导入模块仍然有用;例如在回调的情况下:

map(string.strip, [' foo ', ' bar '])

请注意,以上也可以通过[chunk.strip() for chunk in [' foo ', ' bar ']]实现,所以在这种情况下实际不需要导入string

+1

'地图(str.strip,['foo','bar'])' –

+0

啊,很好。我觉得我应该知道这一点,但不知何故,我没有。感谢您指出了这一点,尽管这使我的回答毫无意义。 :) – jena