[SOLUCIONADO] Ayuda para comprender un poco Python, vengo de Java.

Iniciado por coke951, Diciembre 30, 2015, 01:37:44 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Diciembre 30, 2015, 01:37:44 AM Ultima modificación: Enero 01, 2016, 10:29:42 PM por EPSILON
Que tal, he estado aprendiendo un poco lo fundamental en POO con python y me he quedado un poco patidifuso con las variables estáticas y con la clase principal, espero que alguien se tome la molestia de ayudar a este pobre novato.

Bueno, mi primer lenguaje fue Java, lo tengo aprendido pues, algo bien, asi que intentare primero explicar lo que quiero hacer en python, pero con java o algo asi, para que me entiendan mejor.

En python he visto que llaman variables estáticas de clase (o una cosa asi) a las variables que yo conozco como variables de clase o bueno, mas específicamente a como yo las conozco se le llaman variables de instancia, y si quiero que la variable sea estática (que en todos los objetos instanciados sea la misma variable), seria algo así por ejemplo:

Código: java

class Hola{
static String hola;
}


pero veo que en Python seria algo asi

Código: python

class Hola():
hola = None


pero al instanciar 2 objetos, si a uno le modifico el valor de hola, en el otro objeto instanciado me sigue mostrando None, entonces ¿realmente es una variable estatica? o lo llaman asi pero no por que haga lo mismo que hace en java?



otra pregunta, al parecer se utiliza self como lo que seria en Java como this... y cuando creamos un método en la lista de parametros hay que incluir self si utilizaremos alguna variable de instancia a la cual hacer referencia o siempre hay que utilizar self?

y por ultimo... ¿que rayos pasa con el método main? Cual seria la instuccion que hay que darle a python lo equivalente que es en Java public static void main(String[]args)?

Espero que me puedan ayudar... Gracias de antemano.
Saludos y feliz año nuevo!

Código: php
def main():
    # my code here

if __name__ == "__main__":
    main()



De las tres dudas ya tienes la del main. Te ayudo con ésta, pues la primera sobre los static no la sé.

Citarcuando creamos un método en la lista de parametros hay que incluir self si utilizaremos alguna variable de instancia a la cual hacer referencia o siempre hay que utilizar self?

El self en la firma del método lo convierte, de alguna manera, en un método de instancia. Por el contrario, si declara sun método
miMetodo() sin self sería un método estático y no podrías acceder aatributos de instancia... Exactamente lo que ya indicabas.

Saludos


Perfecto, muchas gracias a ambos, solo me falta entender mi ultima duda

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
De las tres dudas ya tienes la del main. Te ayudo con ésta, pues la primera sobre los static no la sé.

Citarcuando creamos un método en la lista de parametros hay que incluir self si utilizaremos alguna variable de instancia a la cual hacer referencia o siempre hay que utilizar self?

El self en la firma del método lo convierte, de alguna manera, en un método de instancia. Por el contrario, si declara sun método
miMetodo() sin self sería un método estático y no podrías acceder aatributos de instancia... Exactamente lo que ya indicabas.

Saludos