getter/setter must have 1 or 2 arguments respectively

メタデータ

ID: python-best-practices/get-set-arguments

言語: Python

重大度: 警告

カテゴリー: ベストプラクティス

説明

ゲッターとセッターに適切な数のパラメーターがあることを確認してください。

  • ゲッターは正確に 1 つのパラメーター (読み込むインスタンス) を持たなければなりません
  • セッターは、正確に 2 つのパラメーター (更新するインスタンスと関連する値) を持たなければなりません

詳細はこちら

非準拠コードの例

class Foo:
   @property
   def get_my_attribute(self, foo):  # ゲッターの引数は 1 つだけです
      return self.my_attribute

   @attr.setter
   def set_attr(self, v, bar):  # セッターの引数は 2 つだけです
      self._attr = v

   @attr.deleter
   def del_attr(self, foo):  # デリーターの引数は 1 つだけです
      del self._attr

準拠コードの例

class Foo:
   def get_my_attribute(self):
      return self.my_attribute

   def get_my_attribute(self, foo): # プロパティや引数が 1 つではないので有効
      return self.my_attribute

   @property
   def get_my_attribute(self):
      return self.my_attribute

   def set_my_attribute(self, v):
      self.my_attribute = v

   @attr.setter
   def set_attr(self, v):
      self._attr = v

   @attr.deleter
   def del_attr(self,):
      return self._attr