846

すべての.pyファイルを保存するディレクトリがあります。

bin/
   main.py
   user.py # where class User resides
   dir.py # where class Dir resides

main.pyuser.pydir.pyのクラスを使用したい。これらのPythonクラスをmain.py にインポートするにはどうすればよいですか? さらに、user.pyがサブディレクトリにある場合、どうすればクラスをインポートできますか?

User

bin/
    dir.py
    main.py
    usr/
        user.py
4

17 に答える 17

1155

Python 2

__init__.pyファイルと同じディレクトリに呼び出される空のファイルを作成します。これは、「このディレクトリからインポートしても問題ない」ことをPythonに示します。

次に、実行します...

from user import User
from dir import Dir

ファイルがサブディレクトリにある場合も同じことが言えます。__init__.pyサブディレクトリにもを入れてから、ドット表記の通常のインポートステートメントを使用します。ディレクトリのレベルごとに、インポートパスに追加する必要があります。

bin/
    main.py
    classes/
        user.py
        dir.py

したがって、ディレクトリの名前が「classes」の場合は、次のようにします。

from classes.user import User
from classes.dir import Dir

Python 3

前と同じですが.、サブディレクトリを使用しない場合は、モジュール名の前にaを付けます。

from .user import User
from .dir import Dir
于 2010-11-10T07:36:10.503 に答える
48

あなたのmain.py

from user import Class

Class、インポートするクラスの名前です。

のメソッドを呼び出したい場合はClass、次を使用して呼び出すことができます。

Class.method

__init__.py同じディレクトリに空のファイルが必要であることに注意してください。

于 2010-11-10T07:38:33.130 に答える
15

関数とクラスを自分のものと混ぜたくない場合は、モジュールをインポートしてその名前からアクセスできます

import util # imports util.py

util.clean()
util.setup(4)

または、関数とクラスをコードにインポートできます

from util import clean, setup
clean()
setup(4)

wildchar * を使用して、そのモジュールのすべてをコードにインポートできます

from util import *
clean()
setup(4)
于 2014-07-21T11:54:50.997 に答える
11

理解しやすくするために:

ステップ 1: すべてが含まれる 1 つのディレクトリに移動します。

$ cd /var/tmp

ステップ 2: クラス名が Class1 でコードが含まれる class1.py ファイルを作成します。

$ cat > class1.py <<\EOF
class Class1:
    OKBLUE = '\033[94m'
    ENDC = '\033[0m'
    OK = OKBLUE + "[Class1 OK]: " + ENDC
EOF

ステップ 3: クラス名 Class2 を持つ class2.py ファイルをいくつかのコードで作成します。

$ cat > class2.py <<\EOF
class Class2:
    OKBLUE = '\033[94m'
    ENDC = '\033[0m'
    OK = OKBLUE + "[Class2 OK]: " + ENDC
EOF

ステップ 4: 2 つの異なるファイルから Class1 と Class2 を使用するために一度実行される main.py を 1 つ作成します。

$ cat > main.py <<\EOF
"""this is how we are actually calling class1.py and  from that file loading Class1"""
from class1 import Class1 
"""this is how we are actually calling class2.py and  from that file loading Class2"""
from class2 import Class2

print Class1.OK
print Class2.OK
EOF

ステップ 5: プログラムを実行する

$ python main.py

出力は次のようになります

[Class1 OK]: 
[Class2 OK]:
于 2013-09-21T19:17:47.837 に答える
6
from user import User 
from dir import Dir 
于 2010-11-10T07:35:38.743 に答える
0

同じフォルダにある場合filename.pyは、次のように簡単にインポートできます。

import filename

私はpython3.7を使用しています

于 2020-12-21T05:22:11.323 に答える
-2

簡単に言えば、__init__.pyクラスディレクトリにファイルを作成し、次のようにスクリプトにインポートします(すべてのケースをインポート)

from classes.myscript import *

選択したクラスのみをインポート

from classes.myscript import User
from classes.myscript import Dir
于 2017-01-26T04:00:06.077 に答える
-4

同じディレクトリからインポートする

from . import the_file_you_want_to_import 

サブディレクトリからインポートするには、ディレクトリに含める必要があります

初期化.py

あなたのファイル以外のファイル

from ディレクトリ import your_file

于 2019-08-24T06:06:09.970 に答える