

ご覧いただきありがとうございます。  
頻繁に使うパッケージやモジュールをいちいち子クラスでimportせずに、親クラスでimportするだけで子クラスでも使うには次のソースコードをどう修正したらよいか教えていただきたいです。

## 背景

私がDjangoで開発しているプロジェクトでは、csvやreなどのパッケージの使用頻度が多いです。  
子クラスでいちいちimportするのが面倒なので、それなら親クラスでimportすれば子クラスでも使えるかな？と思い小さなプロジェクトで試してみました。ですが下記エラーが出てしまいパッケージをimportすることができず困っています。

## コードの流れ

run.pyでAnswerクラスのexecメソッドを呼び出しています。  
AnswerクラスはModelBaseクラスを継承していて、ModelBaseクラスではcsvパッケージをimportしています。  
execメソッドではcsvパッケージを使っていますがcsvパッケージが見つからずエラーになっています。ちなみにcsvファイルのファイルパスが空文字なのは気にしないでください。

## 実行時のエラー

[code]

    $ python run.py 
    Traceback (most recent call last):
      File "run.py", line 4, in <module>
        answer.exec()
      File "/path/to/dir/polls/models/answer.py", line 5, in exec
        csv.read('')
    NameError: name 'csv' is not defined
    
[/code]

## ソースコード

### ディレクトリ構造

[code]

    $ tree .
    .
    ├── polls
    │   └── models
    │       ├── __init__.py
    │       ├── answer.py
    │       └── base.py
    └── run.py
    
[/code]

### run.py

[code]

    from polls.models import Answer
    
    answer = Answer()
    answer.exec()
    
    
[/code]

### polls/models/ **init**.py

[code]

    from .answer import Answer
    
    
[/code]

### polls/models/base.py

[code]

    import csv
    
    class ModelBase:
        pass
    
    
[/code]

### polls/models/answer.py

[code]

    from .base import ModelBase
    
    class Answer(ModelBase):
        def exec(self):
            csv.read('')
            print('Answer exec')
    
[/code]

## 環境

  * macOS Mojave 10.14.3
  * Python 3.7.0


CC BY-SA 4.0
2019-03-06T07:55:26.770
53237
2019-03-06T08:03:10.463
2019-03-06T08:03:10.463
32428
32428
question
python python3
Pythonで、親クラスでimportしたパッケージを子クラスから使うことはできないか？