Development of an internal social media platform with personalised dashboards for students
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

attribute_defined_outside_init.py 1.0KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. # pylint: disable=missing-docstring,too-few-public-methods,invalid-name
  2. class A(object):
  3. def __init__(self):
  4. self.x = 0
  5. self.setUp()
  6. def set_y(self, y):
  7. self.y = y
  8. def set_x(self, x):
  9. self.x = x
  10. def set_z(self, z):
  11. self.z = z # [attribute-defined-outside-init]
  12. def setUp(self):
  13. self.x = 0
  14. self.y = 0
  15. class B(A):
  16. def test(self):
  17. self.z = 44 # [attribute-defined-outside-init]
  18. class C(object):
  19. def __init__(self):
  20. self._init()
  21. def _init(self):
  22. self.z = 44
  23. class D(object):
  24. def setUp(self):
  25. self.set_z()
  26. def set_z(self):
  27. self.z = 42
  28. class E(object):
  29. def __init__(self):
  30. i = self._init
  31. i()
  32. def _init(self):
  33. self.z = 44
  34. class Mixin(object):
  35. def test_mixin(self):
  36. """Don't emit attribute-defined-outside-init for mixin classes."""
  37. if self.defined_already: # pylint: disable=access-member-before-definition
  38. self.defined_already = None