前提・実現したいこと
ここに質問の内容を詳しく書いてください。
ディクショナリ型を継承したクラスを使いたいです。
発生している問題・エラーメッセージ
ModuleNotFoundError Traceback (most recent call last) <ipython-input-100-a0ab1d699a14> in <module> ----> 1 from strdict import StrDict 2 d = StrDict() 3 d["spam"] = 1 4 d["spam"] ModuleNotFoundError: No module named 'strdict'
該当のソースコード
#!/usr/bin/env python class StrDict(dict): """ ディクショナリ型を継承してクラスを作る """ def __init__(self): pass def __seritem__(self, key, value): """ 特殊メソッドをオーバーライド keyが文字列型以外なら例外を発生 """ if not isinstance(key, str): # キーが文字列でない場合には例外を発生 raise ValueError("Key must be str or unicode.") # スーパークラスの特殊メソッドを呼び出し、キーと値を設定 dict.__setitem__(self, key, value) ここまでがファイル(?)の中身です from strdict import StrDict d = StrDict() d["spam"] = 1 d["spam"]
試したこと
jupyter notebookを使っており、「.py」として保存もしましたがうまくモジュール化できません。
補足情報(FW/ツールのバージョンなど)
jupyter notebookを使用しています。
ファイルをモジュールとして使用する方法を教えていただけたら幸いです。
初学者です。よろしくお願いします。
strdict.pyはカレントディレクトリに存在していますか?
すみません、カレントディレクトリを調べたんですけど、よくわかりませんでした。
テキストによると、「Jupyter Notebookで開いているNotebookのファイル(.ipynb)と同じディレクトリ(フォルダ)にstrdict.pyを設置し、ファイルをインポートできるようにしろ」と書かれていました。
図も開設されていないので、今いち理解が出来ないでいます…。
jupyter notebookのセルで「pwd」と入力して実行してください。表示されたパスがカレントディレクトリです。
出力が「'C:\\Users\\shuns'」と出ました。
それはstrdict.pyが保存してある場所と同じですか? 同じであればimportできるはずです。
コマンドプロンプトでdirで、確認したところ、strdict.pyはありませんでした。strdict.ipynbはあったのですが。
追加で、申し訳ないです。
C:\Users\shuns\Downloadsで、dirを確認したら、そこにstrdict.pyがありました。
回答1件
あなたの回答
tips
プレビュー