2011-09-10 3 views
5

私はこの古いモジュールを2002年頃に読んでいます。この行は "import string"です。文字列型の変数などを使用できるようにするには、Pythonで文字列モジュールを明示的にインポートする必要がありますか?私はそれがコード内でこのように使用され表示されません。python "string"モジュールですか?

string.something 
+1

まだまだです:http://docs.python.org/library/string.html – NullUserException

答えて

2

あなたがimport stringを見ませんが、決してstring.somethingが表示された場合、誰かがちょうど未使用のインポートを削除するのを忘れました。

は今strオブジェクトの標準的な方法ですstringでいくつかのものであることを使用がなかったものの、それでもライブラリをインポートした後string.、または

  • 使用していずれか

    1. プレフィックスそれらをしなければなりませんでしたfrom string import <whatever>構文。前方/後方互換性が新しい言語機能のためのPythonで使用されるトリガー -

    一般的に、唯一の時間は、あなたが何かを正しくインポートされたが、「明示的に使用しない」決してfrom __future__ import with_statementなどされて表示されます。うまく

  • 0

    、古いバージョンでは、文字列のモジュールは確かにはるかに有用であったが、最近のバージョンでは、文字列モジュールの機能のほとんどは、文字列のメソッドとしても利用可能です。..

    このページでは、よりよい一見を与えます。アンバーのよう http://effbot.org/librarybook/string.htm

    -1

    は、冗長インポートであるように思われ、RoeeeKがあなたの代わりにstring.function("foobar")"foobar".method()を行うことができますつまり、stringモジュールの機能のほとんどが、その間の文字列メソッドであることを言っても右である、と述べました。しかし、明示的にモジュールをインポートすることは、時には有効です。たとえば、コールバックの場合:

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

    上記は[chunk.strip() for chunk in [' foo ', ' bar ']]でも達成できるので、stringのインポートは実際にはこの場合は必要ありません。

    +1

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

    +0

    あ、いいですね。私はこれを知っていたはずのように感じますが、どういうわけか、私はしませんでした。私の答えが無意味になっても、それを指摘してくれてありがとう。 :) – jena

    1

    stringモジュールは、ascii_lettersおよびdigitsなどのa set of useful constantsを含んでおり、その理由でモジュールがインポートされることがよくあります。