[Programación]duda sobre self en python

Horacio Castellini horacio9573 en yahoo.com.ar
Mie Sep 12 07:22:57 ART 2012





----- Mensaje original -----
De: Mario OROZ <mario.oroz en gmail.com>
Para: programacion en lugro.org.ar
CC: 
Enviado: martes, 11 de septiembre de 2012 17:34
Asunto: Re: [Programación]duda sobre self en python

El 11/09/2012 04:51 p.m., Manuel Naranjo escribió:
>
>> 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
>

Lo que hace el if __name__ = "__main__" es saber si el archivo algo.py fue
llamado como
programa standalone, para correr desde la linea de comandos o si fue llamado
como modulo;
con un import.
Si es el ultimo caso, no se ejecuta main(), lo que permite la reutilización de
codigo

http://effbot.org/pyfaq/tutor-what-is-if-name-main-for.htm


-----------

Chas gracias... esto me vino de periquete! ups que antiguo que soy :((



_______________________________________________
Programacion mailing list
Programacion en lugro.org.ar
http://lugro.org.ar/mailman/listinfo/programacion



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