Hola
Tengo algunos proyectos que quiero comenzar a hacer en python, estoy actualmente programando en Java usando POO, por lo cual pensé que no seria tan complicado adaptarme a python.
De hecho python es muy sencillo, pero hay algunas cosas que no me quedan claras y espero que alguien me pueda ayudar a solventar.
Primero - los self
Usé el buscador y me tope con un tema de un usuario con la misma duda, y la respuesta me convencio, que los self son referencias a atributos de la misma clase .. como usar el this.
Pero en algunos ejemplos de codigo veo que hay la definicion de una funcion con un self como argumento ... como esta eso?
algo asi:
Código:
def miFuncion(self):codigo
En ese caso, para que sirve el self como argumento (o parametro)..?
Segundo ...
En un [URL="http://rafuru.blogspot.com/2011/05/primeros-pasos-en-python-calculadora.html"]post de mi blog [/URL] hice un primer programa en python, una calculadora sumamente simple.. pero para ilustrarme a mi mismo la estructura de un programa o script..
En un comentario, un compañero me dijo que usara un if para que lo primero que se ejecutara sea el main(), es decir meter lo que se va a ejecutar al arrancar el programa en ese metodo y que el if cheque algo que no me queda claro.. el codigo es este:
Código Python:
Ver originaldef main():
'''' Comentarios de documentacion ... ''''
pass
# Lo unico que hace esta linea, es:
# Si el nombre del modulo es... __main__ entonces
# se ejecutara la funcion... main(), si no... pues no!.
#
# ¿Como que el nombre del modulo es __main__?
# Cuando ejecutas este script de python
# ya sea python file.py, poniendole #! /usr/env/python o /usr/bin/python, import archivo.py
# el modulo tiene un nombre, y es __main__ cuando estas ejecutandolo por si mismo
# es decir, NO cuando lo importas...
if __name__ == "__main__":
main()
La pregunta es.. (sin mas preambulos lol) ... que es el ___name___ si bien me explica que cuando un archivo (modulo o clase) esta siendo ejecutado y no importado trae un nombre por default se llama __main__ pero en caso de que no, que valor toma __name__? .. Y por ultimo... espero realmente no aburrirles jeje..
Es cierta mi percepcion? , que antes de ejecutar algo primero se deben definir todas las funciones? .. es decir hacer todos los def() y luego ya la ejecucion?..
Claro, es una manera poco portable y erronea de hacer las cosas, ya que lo ideal es separar las funciones en una clase y las instrucciones en otras.
Oh si, casi lo olvido, podrian explicarme mas o menos como funciona la herencia en python?
Leí el libro
python para todos y dice que en realidad no existe... tampoco se pueden sobreescribir los metodos.. y que de hecho no pueden haber metodos con el mismo nombre pero con distintos parametros..
Pero no me queda muy claro como hago la herencia en una clase ..
Es todo.. espero no enfadarlos.. son dudas muy clave las que traigo por el cambio de lenguaje..
muchisimas gracias !