1. ホーム
  2. python

[解決済み] getattr()とは何ですか、どのように使うのですか?

2022-03-14 21:13:58

質問

最近 についてお読みください。 getattr() 機能 . 問題は、その使い方のイメージがまだつかめないことです。私が唯一理解しているのは getattr() というのは getattr(li, "pop") を呼び出すのと同じです。 li.pop .

実行時まで関数名を知らずに参照を得るために使うということが本に書いてあったのですが、よくわかりませんでした。これは私がプログラミング全般の初心者なのかもしれません。どなたかこのテーマに光を当てていただけませんか?具体的にいつ、どのように使えばいいのでしょうか?

どのように解決するのですか?

getattr(object, 'x') は完全に等価である から object.x .

があります。 以下の2つのケースのみです。 ここで getattr は有用である。

  • は書けません。 object.x なぜなら、どの属性が欲しいのか事前に分からないからです(文字列から来る)。 メタプログラミングに非常に有効です。
  • デフォルト値を提供したい場合。 object.y が発生します。 AttributeError がない場合は y . しかし getattr(object, 'y', 5) が返されます。 5 .