Estoy tratando de comprender los métodos estáticos en Java. He hecho una pitón básica antes, así que estoy tratando de visualizar método estático de Java en Python.
Es el método estático en el código siguiente
class test{
public static void main(String[] args) {
printHello();
}
public static void printHello(){
System.out.println("This is a Java's static method");
}
}
equivalente a esto?
def printhello():
print("It is a printhello function")
class hello():
def printhello(self):
print("It is a printhello method of a instance")
Como estáticas métodos se puede acceder sin la creación de objetos, def printhello
que funcionaría como este.
Y cuando un objeto está accediendo método estático en Java, la instance method
proporcionada en la clase pitón funcionaría así.
Si no es así, ¿cuál sería la visualización correcta de un método estático de Java en Python.
Gracias.
aquí
class Hello:
def printhello(self):
...
estás pasando una self
referencia al método. Esto significa que es un ejemplo del método.
A estática método no posee una referencia a una instancia de su clase que contiene de forma predeterminada.
Clase Python estáticas métodos se definen, por lo general, mediante la @staticmethod
anotación, y no aceptanself
class Hello:
@staticmethod
def printhello():
...
Así que lo anterior se convertiría, en Java
class Hello {
public static void printhello() {
...
}
}
Java no tiene el concepto de funciones de primer nivel, por lo que este
def printhello():
print("It is a printhello function")
en realidad no es traducible, pero por lo general es una forma más idiomática de definir funciones libres / estáticas en Python.
Como puede haber entendido, respondiendo a la pregunta
Es el método estático en el código de abajo
...
equivalente a esto?
No, no es equivalente a todos.