0

モジュールの練習では、以下のようなクラスがありました。練習/example.py

class Example :

    #some code#

e1= Example();
e2= Example();

そして私は持っていたpractice/__init__.py

from example import Example

そして私はmain.pyを持っていました

import sys , python_practice


e3 = python_practice.Example();


from python_practice import *

e1.sum(1,2);

しかし、私はエラーが発生しています

Traceback (most recent call last):
File "practice.py", line 11, in <module>
e1.sum(1,2);
NameError: name 'e1' is not defined

どこを間違えたのか……。

クラスのオブジェクトを別のモジュールにインポートすることは可能ですか?

4

2 に答える 2

3

はい、インポートするだけです。

するとfrom python_practice import *、 で定義されたすべてのものが得られますpractice/__init__.py。その__init__.pyでは、 をインポートe1しないので、from python_practice import *どちらでもインポートしません。

e1最上位で利用できるようにしたい場合はpython_practice、 にインポートする必要があります__init__.py。そこのコードを に変更しますfrom example import Example, e1, e2

于 2013-09-27T06:38:38.513 に答える
1

__init__パッケージの名前空間を設定します。__init__importsであるためExample、 thenExampleはパッケージの名前空間 (例: python_practice.Example) で使用できます。 e1で何も利用できないため、利用できませ__init__e1

もちろん、ほとんどいつでもそこに着くことができます...

from python_practice.example import e1

動作するはずです。

于 2013-09-27T06:38:34.900 に答える