スタック・オーバーフロー Asked on September 1, 2021
「みんなのPython」を参考にPythonの勉強をしているのですが、下記のコードを打ち込んでも、参考書に書いてある通りになりません。どこが間違っているでしょうか。
(juypter notebookを使って行っています)
#!/usr/bin/env python
class StrDict(dict):
def __init__(self):
pass
def __setitem__(self,key,value):
if not isinstsnce(key,str):
raise ValueError("Key must be str or unicode.")
dict.__setitem__(self,key.value)
これをstrdict.pyとjupyter notebookのファイルに保存して、
from strdict import StrDict
と次のセルで打ち込んだのですが、
NameError Traceback (most recent call last)
<ipython-input-1-d320d56b1f78> in <module>()
----> 1 from strdict import StrDict
~strdict.py in <module>()
3 {
4 "cell_type": "code",
----> 5 "execution_count": null,
6 "metadata": {},
7 "outputs": [],
NameError: name 'null' is not defined
となりました。どうすればよいのでしょう??
Jupyter には Notebook(ipynb
形式)ではないテキストファイルを作成・編集する方法もあるようです。書籍はこれを前提としているかも知れないので、既にある回答 の補足とします。
新規にNotebookではないファイルを作成する際は、Notebook:
ではなく Other:
から Text File
を選択します。
上のようにテキストファイルを作成するか、既存のテキストファイルをクリックすると編集画面に移ります。Notebook を開いた際とは画面構成が異なるので、区別できると思います。
(操作方法やスクリーンショットはJupyter 4.4.0 のものです)
Answered by mjy on September 1, 2021
これをstrdict.pyとjupyter notebookのファイルに保存して、
ここが違っています。
Jupyter Notebook上で作れるのは、ipynb形式のファイルです。
strdict.py を作るにはJupyter Notebook以外のテキストエディタ等を使って作ってみて下さい。
もうすこし詳しく書くと、Jupyter Notebookの保存形式 ipynb の中身はjsonフォーマットです。これをPythonのimport文で読み込もうとすると、PythonがPythonの文法としてjsonフォーマットを解釈しようとします。Pythonの文法や組み込み変数に null
は存在しないので、 NameError: name 'null' is not defined
というエラーが発生しています。
Answered by Takayuki SHIMIZUKAWA on September 1, 2021
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP