2016-11-01 11 views
-2
1. from wtforms import StringField, PasswordField 
    2. from wtforms.validators import (DataRequired, Regexp, Email, ValidationError) 

最初の行は、StringFieldとPasswordFieldのクラスが定義されているファイル名wtforms.pyがあることを意味します。 しかし、私は2行目の意味を理解できません。それは、DataRequired、Regexp、およびすべてのようなクラスを持つvalidators.pyを持つフォルダー名 'wtforms'があることを意味しますか?はいの場合、Pythonインタプリタはどのように 'wtform'フォルダと 'wtform.py'ファイルを区別しますか?Pythonでのファイルのインポート

+0

はい、 'validform'パッケージが' wtforms'パッケージの中にあります。なぜ見ないだけですか?名前空間内で名前がどのように分かれているかについては、同じ名前のファイルとパッケージがある場合、読み込まれ、無視されます。 – davidism

答えて

3

あなたの最初の仮定は正しくありません。 wtforms.pyというファイルがあるかもしれませんが、.pydというファイルがCで書かれているか、パッケージ - ディレクトリまたは「フォルダ」となります。

パッケージ(ディレクトリ)の場合、ディレクトリ自体に__init__.pyというファイルが実行されます(これはPython 3で許可されている例外があります)。

ここでも、第2の仮定では、ファイルがあるかもしれませんがwtformsディレクトリにvalidators.pyと呼ばれるが、やはりそれはコンパイル.pydファイル、あるいはサブディレクトリである可能性があります。大規模なディレクトリ階層も可能ですが、前提はできません。

+0

あなたのコメントをありがとう、cdarke!しかし、私はまだ私の答えを得ていませんでした。これは、Flaskプロジェクトのコードの有効なスニペットです。輸入が実際にどのように起こっているか説明してください(この場合)? – Utkarsh

+0

まあ、私は私の答えを得た!私はディレクトリを自分で調べた。すべてに感謝します。 :) – Utkarsh

関連する問題