[Programación]duda sobre self en python

Manuel Naranjo naranjo.manuel en gmail.com
Mar Sep 11 16:51:01 ART 2012


> Buenas... esta duda puede ser elemental, pero el self en el método
> __init__ en una clase en python, me suena muy similar al puntero this en
> C++, esto es así??
si, pero no necesariamente tiene que ser self, puede ser cualquier 
huevada que le quieras poner miéntras no sea una palabra reservada, 
aunque sino queres que te lluevan puteadas de porque usaste otra palabra 
usa self :D.

Los objetos tiene metodos cuyo primer argumento es reemplazado por una 
referencia al mismo objeto (tiene un nombre eso ahora, pero no me 
acuerdo cuál era). Una forma de hacerlo es con partial de functools 
haciendo: setattr(objeto, "metodo", partial(funcion, objeto))


> otra cosa que siempre me pareció una complicación,,, que sentido tiene
> definir el cominezo de un código principal con:
>
> def main():
> .....
> ....
> if __name__="__main__":
>     main()
>
> es una estética para hacer mas leíble el código? o es como en Ada que no
> existe el main(){..} y uno puede tomar cualquier parte del código para
> que el compilador (acá no lo hay :)) ) lo asuma como código principal???
>
>
> Saludos...
>
> Pta: yo soy de la época del C++ :() ...

el __name__ es porque todo el código se ejecuta al momento de ser 
compilado, pero cómo sabrías cuál es el punto de entrada? O si tu 
archivo está siendo llamado por el arranque de la VM? bueno la vm setea 
la variable __name__ a __main__ :D, fijate que es es 
__name__=="__main__", lo del hacer el def main() es por si queres hacer 
código un poco más reutilizable y queres poder llamar al main de ese 
archivo desdé otro modulo.

Manuel



Más información sobre la lista de distribución Programacion