getter/setter must have 1 or 2 arguments respectively

이 페이지는 아직 영어로 제공되지 않습니다. 번역 작업 중입니다.
현재 번역 프로젝트에 대한 질문이나 피드백이 있으신 경우 언제든지 연락주시기 바랍니다.

Metadata

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

Language: Python

Severity: Warning

Category: Best Practices

Description

Ensure that getter and setter have the right number of parameters:

  • getters must have exactly one parameter (the instance we are reading from)
  • setters must have exactly two parameters (the instance we are updating and the associated value)

Learn More

Non-Compliant Code Examples

class Foo:
   @property
   def get_my_attribute(self, foo):  # getter should have only one argument
      return self.my_attribute
   
   @attr.setter
   def set_attr(self, v, bar):  # setter should have only two arguments
      self._attr = v

   @attr.deleter
   def del_attr(self, foo):  # deleter should have only one argument
      del self._attr

Compliant Code Examples

class Foo:
   def get_my_attribute(self):
      return self.my_attribute
   
   def get_my_attribute(self, foo): # Not a property or attr, valid
      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
PREVIEWING: brett.blue/embedded-collector-release