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

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

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

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

Q&A

解決済

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

takadaibuoyancy
takadaibuoyancy

総合スコア17

Python 3.x

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

2回答

0グッド

0クリップ

389閲覧

投稿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
としてもうまくいった。

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

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

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

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

下記のような質問は推奨されていません。

  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

回答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

総合スコア30906

下記のような回答は推奨されていません。

  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

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

ただいまの回答率
86.02%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Python 3.x

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