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

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

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

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

Q&A

解決済

3回答

555閲覧

どの順で処理をしているか知りたい

teo215

総合スコア1

Python

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

0グッド

0クリップ

投稿2022/01/18 10:25

編集2022/01/18 10:50

イメージ説明
質問1  なぜこのプログラムでclassの後info(self):と定義した後にイスタンスを作っているのかがわからないです。
質問2  3,8行目のreturnがどの関数に入っているのかを知りたいです
質問3  自分の理解だとclassを作る→インスタンスを作るはずなのにその間に戻り値などを入れている理由がわかりません。
質問4  total_price、result関数がどの関数や因数に入って最後のprintの結果が出るかわからないです。
質問5  3行目のreturnで¥の前にコロンを入れている理由が知りたいです。
できれば ○○→○○→〇〇という風に教えていただけると理解しやすいです。

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

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

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

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

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

maisumakun

2022/01/18 10:37

> total_price、result関数がどの関数や因数に入って最後のprintの結果が出るかわからないです。 どのように考えて、何が引っ掛かっていますか?
y_waiwai

2022/01/18 10:37

コードはテキストで提示しましょう 質問を編集し、<code>ボタンを押し、出てくる’’’の枠の中にコードを貼り付けてください
guest

回答3

0

ベストアンサー

python

1class MenuItem: # MenuItemクラスの定義を開始 2 def info(self): # MenuItemクラスの中で、infoメソッドの定義を開始 3 return self.name + ': \\' + str(self.price) # メソッドの実行文を定義 4 # infoメソッドの定義終了 5 6 def get_total_price(self, count): # get_total_princeメソッドの定義を開始 7 total_price = self.price * count # メソッドの実行文を定義 8 return total_price # メソッドの実行文を定義 9 # get_total_priceメソッドの定義終了 10# MenuItemクラスの定義終了 11 12menu_item1 = MenuItem() # MenuItemクラスのインスタンスを生成します 13 # 作ったインスタンスは menu_item1 で参照します 14menu_item1.name = 'サンドイッチ' # インスタンスに nameアトリビュートを追加します 15menu_item1.price = 500 # インスタンスに priceアトリビュートを追加します 16 17print(menu_item1.info()) # infoメソッドを呼び出し、結果を表示します 18 19result = menu_item1.get_total_price(4) # get_total_priceメソッドを呼び出し、 20 # 結果のオブジェクトを result で参照します 21print('合計は' + str(result) + '円です') # 文字列を連結して表示します

クラスを定義してもインスタンスは生成されません。MenuItem() のように
クラス名に () を付けて呼び出して初めてインスタンスが生成されます。

メソッドを定義しても、呼び出すまで実行はされません。

投稿2022/01/18 12:33

kazuma-s

総合スコア8224

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

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

0

1行目~8行目でクラスを定義しています。
11行目でインスタンスを作っています。
3行目のreturnはinfoメソッドの戻り値を返すものです。
15行目でmenu_item1のinfoメソッドを呼んでいるので、その戻り値がprint関数の引数として渡されます。
8行目のreturnはget_total_priceメソッドの戻り値を返すものです。
18行目でmenu_item1のget_total_priceメソッドを呼んでいるので、その戻り値がresultに代入されます。

公式ドキュメント Python チュートリアル 9. クラスをよく読んでください。

投稿2022/01/18 10:44

編集2022/01/18 11:01
ppaul

総合スコア24666

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

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

0

自分の理解だとclassを作る→インスタンスを作るはずなのにその間に戻り値などを入れている理由がわかりません。

途中に入っているのは、このクラスに属するメソッドの定義(クラス定義の一部)です。

投稿2022/01/18 10:36

maisumakun

総合スコア145199

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

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

maisumakun

2022/01/18 10:56

> 質問5  3行目のreturnで¥の前にコロンを入れている理由が知りたいです。 単に、そういう文言を生成しているだけです。プログラム的な意味は持たない、単なる文字列です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問