Ce produit n'est pas pris en charge par le site Datadog que vous avez sélectionné. ().
Cette page n'est pas encore disponible en français, sa traduction est en cours.
Si vous avez des questions ou des retours sur notre projet de traduction actuel, n'hésitez pas à nous contacter.

Metadata

ID: python-best-practices/method-hidden

Language: Python

Severity: Warning

Category: Error Prone

Description

Make sure that class attribute and class methods have a unique name without any collision.

Non-Compliant Code Examples

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

    def bla(foo):
        pass

    def foo(self): # hidden by self.foo
        pass
class Config:
    def __init__(self, value):
        self.threshold = value
        self.max_val = 100

    @property
    def threshold(self) -> int:
        return self._threshold

    def max_val(self):  # hidden by self.max_val, not a property
        pass

Compliant Code Examples

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

    def bla(foo):
        pass

    def bar(self):
        pass
from abc import abstractmethod

class AbstractBase:
    def __init__(self):
        self.value = 0

    @property
    @abstractmethod
    def value(self):
        pass

    @value.setter
    @abstractmethod
    def value(self, v):
        pass
class Counter:
    def __init__(self, start):
        self.count = start
        self.max_value = 100

    @property
    def count(self) -> int:
        return self._count

    @count.setter
    def count(self, val: int) -> None:
        self._count = val

    def reset(self):
        self.count = 0
https://static.datadoghq.com/static/images/logos/github_avatar.svg https://static.datadoghq.com/static/images/logos/vscode_avatar.svg jetbrains