1. ホーム
  2. python

[解決済み] Pylintの "Too few public methods "というメッセージは何を意味しているのか?

2022-06-23 03:52:16

質問

あるコードでPylintを実行したところ、"Too few public methods (0/2)" というエラーが表示されました。このメッセージは何を意味するのでしょうか?

このメッセージは Pylint ドキュメント は役に立ちません。

クラスのパブリックメソッドが少なすぎる場合に使用されるので、本当に価値があるかどうか確認してください。

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

このエラーは、基本的に、クラスが以下のことを意味していないと言っています。 だけ 基本的にクラスを辞書として扱っているため、データを保存するためのものではないということです。クラスは、保持するデータに対して操作するための少なくともいくつかのメソッドを持つべきです。

もし、あなたのクラスがこのようなものだとしたら。

class MyClass(object):
    def __init__(self, foo, bar):
        self.foo = foo
        self.bar = bar

辞書の利用を検討するか namedtuple を使うことを検討してください。クラスが最良の選択と思われる場合は、それを使用してください。Pylintは何がベストかを常に知っているわけではありません。

以下のことに注意してください。 namedtuple は不変であり、インスタンス化の際に割り当てられた値は後で変更することができないことに注意してください。