質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

862閲覧

ディクショナリ型の継承の仕方について

tyunibyou

総合スコア3

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/08/31 08:49

前提・実現したいこと

ここに質問の内容を詳しく書いてください。
ディクショナリ型を継承したクラスを使いたいです。

発生している問題・エラーメッセージ

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を使用しています。
ファイルをモジュールとして使用する方法を教えていただけたら幸いです。
初学者です。よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

meg_

2020/08/31 09:15

strdict.pyはカレントディレクトリに存在していますか?
tyunibyou

2020/08/31 11:07

すみません、カレントディレクトリを調べたんですけど、よくわかりませんでした。 テキストによると、「Jupyter Notebookで開いているNotebookのファイル(.ipynb)と同じディレクトリ(フォルダ)にstrdict.pyを設置し、ファイルをインポートできるようにしろ」と書かれていました。 図も開設されていないので、今いち理解が出来ないでいます…。
meg_

2020/08/31 12:24

jupyter notebookのセルで「pwd」と入力して実行してください。表示されたパスがカレントディレクトリです。
tyunibyou

2020/08/31 12:48

出力が「'C:\\Users\\shuns'」と出ました。
meg_

2020/08/31 13:04

それはstrdict.pyが保存してある場所と同じですか? 同じであればimportできるはずです。
tyunibyou

2020/08/31 13:28

コマンドプロンプトでdirで、確認したところ、strdict.pyはありませんでした。strdict.ipynbはあったのですが。
tyunibyou

2020/08/31 13:42

追加で、申し訳ないです。 C:\Users\shuns\Downloadsで、dirを確認したら、そこにstrdict.pyがありました。
guest

回答1

0

ベストアンサー

strdict.ipynbをstrdict.pyに変換してください。

strdict.ipynbをjupyter notebookで開いて「File → Download as → Python(.py)」で保存してください。
C:\Users\XXXX\Downloadsに保存されますので、質問のコード(.ipynb)と同じ場所にコピーしてください。これでimport出来るようになるかと思います。

投稿2020/08/31 13:36

編集2020/08/31 13:39
meg_

総合スコア10716

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tyunibyou

2020/08/31 13:59

回答ありがとうございます。 C:\Users\XXXX\Downloadsから、C:\Users\XXXXへ、保存先を変える方法が分からないです。
meg_

2020/08/31 14:46

jupyter notebookのダウンロード先の変更方法は知りません。単純にファイルの移動をすれば良いですよ。
tyunibyou

2020/08/31 15:05

調べたら分からりました! ipynbからpyに変える工程だとうまくいきました。 ホントにありがとうございます。助かりました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問