2011-09-10 2 views
5

Je lis donc ce vieux module depuis 2002 environ et il a cette ligne "import string". Est-ce que Python vous demandait d'importer explicitement un module string avant de pouvoir utiliser des variables de type chaîne ou quelque chose? Je ne vois pas utilisé comme ceci dans le code:Python "chaîne" module?

string.something 
+1

Il est toujours là: http://docs.python.org/library/string.html – NullUserException

Répondre

2

Si vous voyez un import string mais jamais voir string.something, quelqu'un a oublié de supprimer une importation non utilisée.

Bien qu'il y ait a fait utiliser pour être certaines choses dans string qui sont maintenant des méthodes standard de str objets, vous aviez encore soit les préfixe

  1. avec string. après avoir importé la bibliothèque, ou
  2. utilisation from string import <whatever> syntaxe.

En règle générale, les seules fois où vous verrez quelque chose correctement importé mais jamais « explicitement utilisé » sont from __future__ import with_statement ou similaires - l'avant/arrière utilisé par les déclencheurs compatibilité Python pour les nouvelles fonctionnalités du langage.

0

bien, dans les anciennes versions du module de chaîne était en effet beaucoup plus utile, mais dans les versions récentes la plupart des fonctions du module de chaîne sont également disponibles en tant que méthode de chaîne ..

cette page vous donnera un meilleur regard: http://effbot.org/librarybook/string.htm

-1

comme Ambar dit, il semble être une importation redondante et RoeeeK est également raison de dire que la plupart des fonctions du module string sont quant à lui une méthode de chaîne, à savoir que vous pouvez faire "foobar".method() au lieu de string.function("foobar"). Cependant, il est parfois utile d'importer explicitement le module; par exemple, dans le cas de rappels:

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

Notez que ce qui précède peut également être atteint par [chunk.strip() for chunk in [' foo ', ' bar ']], donc l'importation string n'est en fait pas nécessaire dans ce cas.

+1

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

+0

Ah, bien. Je sens que j'aurais dû le savoir, mais d'une manière ou d'une autre, je ne l'ai pas fait. Merci de le signaler, même si cela rend inutile ma réponse. :) – jena

1

Le module string contient a set of useful constants, tel que ascii_letters et digits, et le module est souvent encore importé pour cette raison.