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

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

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

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

Q&A

解決済

2回答

500閲覧

モジュールのインポートがうまくいかないです。

takadaibuoyancy

総合スコア17

Python 3.x

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

0グッド

0クリップ

投稿2019/08/13 22:12

問題の概要

script.pyというファイルにクラスを定義し、script2.pyでimportしたかったのですがうまくいきません。僕が勉強した知識では、下記のコードでうまくいくはずなのですが...。

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

Traceback (most recent call last): File "/Users/takahamadaisuke/Desktop/prog_lesson/script2.py", line 2, in <module> item1=MenuItem("tea",151) NameError: name 'MenuItem' is not defined

該当のソースコード

Python3

1#script.pyでは 2class MenuItem: 3 def __init__(self,name,price): 4 self.name=name 5 self.price=price 6 def inform(self): 7 print(self.name+""+str(self.price)) 8class Bakabon: 9 def __init__(self): 10 print("That's OK") 11-------------------------------------------------------- 12#script2.pyでは 13import script 14item1=MenuItem("tea",151) 15item1.inform() 16item2=Bakabon()

こうしたらうまくいった

上のファイルのscript2.pyでインスタンス生成の行を
item1=script.MenuItem("tea",151)

item2=script.Bakabon()
としたらうまくいった。

また最初の状態からimportの部分を
from script import MenuItem
from script import Bakabon
としてもうまくいった。

ご回答のほどよろしくお願いします

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

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

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

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

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

guest

回答2

0

普通にやり方が間違ってました。
インポートした後は
Object=module.class()
でインスタンス生成です。moduleが抜けていました。

投稿2019/08/14 08:10

takadaibuoyancy

総合スコア17

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

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

0

ベストアンサー

そういう仕様です。

import scriptだと、scriptという変数が作成され、モジュールを参照できます。from script import MenuItemなどとすると、更にscriptモジュール内のMenuItemという属性が取り出され、同じ名前でアクセスできるようになります。

import scriptだけでMenuItemを直接参照できるようにはなりません。

投稿2019/08/13 22:22

編集2019/08/13 22:23
hayataka2049

総合スコア30933

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問