• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

Python @staticmetod

~localhost

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

Python:
class cls:
    @staticmetod
    def fun1(var):
        return var
    
    @staticmetod
    def fun2():
        print(fun1("hello"))
 
Весь код сплошной косяк. Вы даже статик метод с ошибкой написали, правильно @staticmethod
Сразу укажу ещё на ошибки - название класса пишется с БОЛЬШОЙ буквы. И НЕЛЬЗЯ использовать для любых названий зарезервированные слова (здесь cls)

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

Статический метод - это метод, который ничего не знает о классе или экземпляре.
 
Да это я все знаю как пишется и с какой буквы. и зачем нужен @staticmetHod была необходимость вызывать один из другого.
 
Я уже ответил на ваш вопрос - выделено зелёным. Статический метод не может обращаться к объектам класса.

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

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


def fun2():
    fun1("hello")


fun2()
 
Я уже ответил на ваш вопрос - выделено зелёным. Статический метод не может обращаться к объектам класса.

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

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


def fun2():
    fun1("hello")


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

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

Похожие темы