Здесь
class Hello:
def printhello(self):
...
вы передаете self
ссылку на метод.Это означает, что это метод instance .
A static метод по умолчанию никогда не владеет ссылкой на экземпляр его содержащего класса.
Класс Python static методы определяются, как правило, с использованием аннотации @staticmethod
, и они не принимают self
class Hello:
@staticmethod
def printhello():
...
Таким образом, в Java
class Hello {
public static void printhello() {
...
}
}
все вышеперечисленное станет
В Java нет концепции функций первого уровня, поэтому этот
def printhello():
print("It is a printhello function")
на самом деле не переводим, но обычно это более идиоматический способ определения свободных / статических функций вPython.
Как вы, наверное, поняли, отвечая на ваш вопрос
Является ли статический метод в коде ниже
...
эквивалентным этому?
Нет, это совсем не эквивалентно.