締切済み

most recent call last の意味

  • 困ってます
  • 質問No.9549526
  • 閲覧数128
  • ありがとう数0
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 73% (159/217)

python のエラーメッセージに含まれる most recent call last とはどういう意味ですか? 「こういうときに出るエラーメッセージだ」みたいな説明ではなくて、英文和訳のように単語ごとの意味が知りたいです。ふつうの文章として意味がわかりそうでわからないので気持ち悪くてしょうがないです…

回答 (全2件)

  • 回答No.2

ベストアンサー率 62% (404/651)

Tracebackだと、通常はエラーが発生した命令の位置から呼び出し履歴を遡っていくものですが、そうするとエラーが発生した位置の表示がスクロールしないと見えなくなる可能性が高くなります。なので、表示として直前の呼び出し履歴が最後の方に表示される順序だということを注釈しているにすぎません。
普通の文章としてみるとおかしく思えるかもしれませんが、「Lady first」などと同じです。これが間違った英語だというと、某大統領が連呼した「America first」も間違いになります。
感謝経済
  • 回答No.1

ベストアンサー率 61% (148/239)

英語的には「間違って」いますね。
と言うより、簡易表示用の省略表現になっています。

What does “most recent call last” mean?:
https://ell.stackexchange.com/questions/37672/what-does-most-recent-call-last-mean

つまり、

The most recent call is last. (直近の「(関数)呼び出し」は最後にありますよ)

の意です。

例えば、こうしますよね。

>>> def foo(): # エラーをわざと起こす関数
  return 1/0

>>> def bar():
  print(foo())


>>>

それでbarを呼び出してみると当然エラーを吐くんですが。

>>> bar()
Traceback (most recent call last):
 File "<pyshell#13>", line 1, in <module>
  bar()
 File "<pyshell#12>", line 2, in bar
  print(foo())
 File "<pyshell#10>", line 2, in foo
  return 1/0
ZeroDivisionError: division by zero
>>>

当然プログラムを書いた側も

barを呼び出す->fooを呼び出す->1/0を計算する(からエラーになる)

って事が分かっているわけですが、トレースバックも「最後」に表示された直近の呼び出しであるreturn 1/0が「おかしい」と言っていますね。そこがmost recent callで、エラー表示の位置がlastになってるよ、ってわけです。
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する

特集


感謝でトクする時代へ!感謝経済に参加しよう!

ピックアップ

ページ先頭へ