• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

  • Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Python @staticmetod

~localhost

Green Team
30.10.2017
230
49
BIT
19
Привет как на python из статического метода класса вызвать статический метод этого же класса. или это не возможно?

Python:
class cls:
    @staticmetod
    def fun1(var):
        return var
    
    @staticmetod
    def fun2():
        print(fun1("hello"))
 

explorer

Platinum
05.08.2018
1 080
2 470
BIT
0
Весь код сплошной косяк. Вы даже статик метод с ошибкой написали, правильно @staticmethod
Сразу укажу ещё на ошибки - название класса пишется с БОЛЬШОЙ буквы. И НЕЛЬЗЯ использовать для любых названий зарезервированные слова (здесь cls)

@staticmethod
означает, что когда этот метод вызывается, мы не передаем ему экземпляр класса, а значит, что нет необходимости передавать неявный аргумент, например self.
В принт писать функцию это вообще никуда не годится - таким образом на выходе будет объект, а не результат работы функции.

Статический метод - это метод, который ничего не знает о классе или экземпляре.
 

~localhost

Green Team
30.10.2017
230
49
BIT
19
Да это я все знаю как пишется и с какой буквы. и зачем нужен @staticmetHod была необходимость вызывать один из другого.
 

explorer

Platinum
05.08.2018
1 080
2 470
BIT
0
Я уже ответил на ваш вопрос - выделено зелёным. Статический метод не может обращаться к объектам класса.

А вот рабочий код, и никаких классов здесь не требуется:

Python:
def fun1(enter):
    print(enter)


def fun2():
    fun1("hello")


fun2()
 

~localhost

Green Team
30.10.2017
230
49
BIT
19
Я уже ответил на ваш вопрос - выделено зелёным. Статический метод не может обращаться к объектам класса.

А вот рабочий код, и никаких классов здесь не требуется:

Python:
def fun1(enter):
    print(enter)


def fun2():
    fun1("hello")


fun2()
Да, это для примера было написано, чтобы визуальное было понятно. Я понял, что нельзя так сделать. Спасибо!
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!