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

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

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

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

Tkinter

Tkinterは、GUIツールキットである“Tk”をPythonから利用できるようにした標準ライブラリである。

意見交換

クローズ

5回答

580閲覧

pythonのmessageboxの別の書き方について

learner1031

総合スコア1

Python 3.x

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

Tkinter

Tkinterは、GUIツールキットである“Tk”をPythonから利用できるようにした標準ライブラリである。

0グッド

0クリップ

投稿2023/02/22 08:33

0

0

前提

python3.10
pip 23.0
tkinter

困っていること・わからないこと

tkinterを使い、messageboxを使用しています。
以下のような書き方では、動作します。

python3.10

1from tkinter import messagebox 2messagebox.showinfo()

これはtkinterの中から、messgeboxを使うことを示しているものと認識しております。
そこで以下のような書き方を試しました。

python3.10

1import tkinter as tk 2tk.messagebox.showinfo()

しかし、これではmessageboxが見つからないと出てしまいます。

AttributeError: type object tk.messagebox has no attribute 'showinfo'

どのような仕組みになっているかをわかりやすく教えてくださると幸いです。
また文章がわからないかもしれませんが、ご了承ください。
ご教授お願いします。

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

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

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

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

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

回答5

#1

TakaiY

総合スコア12747

投稿2023/02/22 09:35

モジュールはインポートしないと使えません。

messageboxはモジュールです。

python

1from tkinter import messagebox 2print(type(messagebox)) 3 4#> <class 'module'>

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

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

#2

learner1031

総合スコア1

投稿2023/02/22 11:20

モジュールとの違いは、
モジュールは内部の部品を意味する言葉なのに対し、
ライブラリは外部提供のプログラム部品を意味する言葉です。
という記事を見つけました。

では、ライブラリのみを用いて、以下のように内部の部品を使うことはできないですか?
ご解説よろしくお願いします。

python

1import messagebox

引用:https://medium-company.com/%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB/#:~:text=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%81%A8%E3%81%AE%E9%81%95%E3%81%84%E3%81%AF,%E3%82%92%E6%84%8F%E5%91%B3%E3%81%99%E3%82%8B%E8%A8%80%E8%91%89%E3%81%A7%E3%81%99%E3%80%82

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

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

#3

TakaiY

総合スコア12747

投稿2023/02/22 11:41

何が知りたいのですか?
import messagebox でどうしようと?

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

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

#4

learner1031

総合スコア1

投稿2023/02/22 11:49

python

1import tkinter as tk 2tk.messagebox.showinfo()

のように書けるのでないかと思いまして。。。
tkinterのライブラリの中にあるmessageboxというモジュールなら、
上記の書き方でもできると思いました。

理解がまだできていないところがありまして、
言葉足らずな説明になってしまい申し訳ありません。

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

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

#5

TakaiY

総合スコア12747

投稿2023/02/22 11:59

のように書けるのでないかと思いまして。。

言語の仕様なのでなりません。

最初の回答をちょっと詳しく書きますね。

  • モジュールはインポートしなければ使えません。
  • tkinterはモジュールです。
  • tkinterに入っているmessageboxもモジュールです。
  • tkinterをインポートしても、配下のモジュールもインポートしたことにはなりません。

ということで、messageboxモジュールを使いたければ、

python

1import tkinter.messagebox 2# とか 3from tkinter import messagebox

のようにインポートしてやる必要があります。

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

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

最新の回答から1ヶ月経過したため この意見交換はクローズされました

意見をやりとりしたい話題がある場合は質問してみましょう!

質問する

関連した質問