Pythonパッケージ、モジュール、クラス、および問題点
1809 ワード
最近コードを叩くときは主に2つの大きな問題に直面しています.1つ目は、自分のパッケージを構築するときにpackageが見つからないことです.自分のpackageを構築して2つの経験を話して、この問題を解決するのに役立ちます.1自分で作ったバッグの名前は、Pythonが持っているバッグと重複しないようにし、名前をカスタマイズします.さもないとバグがどこにあるか分からない 2このフォルダを1つのパッケージにするつもりなら、必ずこのフォルダの同じディレクトリの下に1つの__を新規作成しなければなりません.init__.pyファイル(コンテンツは空でもよい) 一般的にこの2点に注意すれば、パッケージの構築は問題ありません.
かばんのフォルダの中にあります.pyファイルはモジュール(ファイル名はモジュール名)と呼ばれ、もちろんパッケージにはサブパッケージがあるかもしれないが、それでも各パッケージには.pyファイルもモジュール(二重下線付きのものを除く)
モジュールファイルには、関数、プロパティ、クラスを書くことができます.では、これらの関数、属性、またはクラスをどのように呼び出しますか?
呼び出し関数は簡単で、ポリシーはimportモジュールです.関数またはfromモジュールimport関数は、クラスをオブジェクトにインスタンス化したい場合は、
ただし、モジュールをオブジェクトにインスタンス化することはできません.彼はクラスではありません.そうしないと、「module」object is not callableをエラーします.一般的に、このような間違いは、半日で原因が見つからず、主にコード規範が不十分である.モジュール名をクラス名と同じように書き、importモジュールでいいと思っていたが、実際にはそうではなかった.例えば私はhahaというクラスを呼び出してオブジェクトにインスタンス化したいと思って、hahaを書きました.pyファイル、hahaクラスを定義するには、オブジェクトをインスタンス化するときにこのように書くべきです(パッケージがMyCodeであると仮定します):
あるいはこう書く
このように書くのはよくありません.とにかく、モジュール名とクラス名を同じに書かないほうがいいです.
かばんのフォルダの中にあります.pyファイルはモジュール(ファイル名はモジュール名)と呼ばれ、もちろんパッケージにはサブパッケージがあるかもしれないが、それでも各パッケージには.pyファイルもモジュール(二重下線付きのものを除く)
モジュールファイルには、関数、プロパティ、クラスを書くことができます.では、これらの関数、属性、またはクラスをどのように呼び出しますか?
呼び出し関数は簡単で、ポリシーはimportモジュールです.関数またはfromモジュールimport関数は、クラスをオブジェクトにインスタンス化したい場合は、
from import
a = ()
ただし、モジュールをオブジェクトにインスタンス化することはできません.彼はクラスではありません.そうしないと、「module」object is not callableをエラーします.一般的に、このような間違いは、半日で原因が見つからず、主にコード規範が不十分である.モジュール名をクラス名と同じように書き、importモジュールでいいと思っていたが、実際にはそうではなかった.例えば私はhahaというクラスを呼び出してオブジェクトにインスタンス化したいと思って、hahaを書きました.pyファイル、hahaクラスを定義するには、オブジェクトをインスタンス化するときにこのように書くべきです(パッケージがMyCodeであると仮定します):
from MyCode import haha
a = haha.haha()
あるいはこう書く
from MyCode.haha import haha
a = haha()
このように書くのはよくありません.とにかく、モジュール名とクラス名を同じに書かないほうがいいです.