Могу ли я использовать статический метод с тем же параметром, что и экземпляр объекта? ⇐ Python

Программы на Python
Anonymous
Могу ли я использовать статический метод с тем же параметром, что и экземпляр объекта?

Сообщение Anonymous »

В последнее время я снова и снова сталкиваюсь с ситуацией, но пока не нашел решения.
Предположим, у меня есть класс, который должен предлагать статический метод, чтобы функция работала и без создание экземпляра.
Теперь я хочу использовать эту функцию и для объектов класса.
Проблема в том, что обе имеют одинаковые параметры, и я не хочу использовать их дважды.
Пример:< /p>

Код: Выделить всё

class Directory:
def __init__(self, path) -> None:
self.path = path
@staticmethod
def change_access_rights(path, rights):
pass
Так это работает:

Код: Выделить всё

Directory.change_access_rights(my_path, rights)
Directory(my_path).change_access_rights(my_path, rights)
Но вторая строка некрасивая. Я бы предпочёл что-то подобное

Код: Выделить всё

Directory(my_path).change_access_rights(rights)
Поэтому моя функция должна распознавать, вызывается ли она как экземпляр или как статический метод, и использовать параметр в зависимости от этого.
Псевдокод:

Код: Выделить всё

    @staticmethod
def change_access_rights(path, rights):
if self.path or path:
...
Можно ли использовать метод класса для решения этой проблемы?

Подробнее здесь: https://stackoverflow.com/questions/790 ... ted-object

Вернуться в «Python»