Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Anibal784

#11
No, la expresión if __name__ == "__main__": dice, si el módulo que estás ejecutando es el módulo principal, ejecutá el código que sigue.

No es ninguna directiva de compilador ni nada, incluso puedes decir, por ejemplo:
Código (python) [Seleccionar]

if __name__ == "__main__":
    print "Estas a punto de ejecutar el programa"
    main()
elif __name__ == "modulo_de_algo":
    initialize()
else:
    print "Tu programa esta mal configurado, debes llamar a tu modulo ...."

para obligar a que no cambien el nombre del archivo, en si, el intérprete de python va parseando el archivo y ejecutando las líneas que va encontrando, el if no está dentro de ninguna función o clase, por lo que la ejecuta, comprueba si el nombre del módulo es __main__ y de ser así ejecuta su interior, sino pasa a la siguiente línea del programa.
#12
A veces se usa para poner el código de prueba de un módulo que no quieres que se ejecute cuando estás importando dicho módulo. Por ejemplo, tienes un archivo que guarda un montón de funciones y quieres probarlo, entonces haces todas las pruebas, pero si el módulo es importado no necesitas que esas pruebas se ejecuten, por lo que haces el if __name__.
#13
es que entonces tu clase no me sirve de nada, carece de sentido, supongamos que hago un código algo así:
Código (java) [Seleccionar]

BD db = new BD("usuario", "pass", "url://noseque", "driver...");
db.obtenerDatos("consulta sql");

if(condicion){
    db.setUser("anibal");
    db.actualizar("otra consulta sql");
}


ahí cambié el usuario, o sea me conecto con otro usuario y por torpeza me olvidé de hacer conectar, ejecuto otra consulta, pero la segunda consulta se hará sobre la conexión anterior. Pongamos el ejemplo de que "usuario" únicamente puede leer, o sea no puede hacer actualizar, tonces me conecto con "anibal" para hacer esa actualización, ¿sabés lo difícil que va a ser encontrar el error?.
Está bien, dudo el por qué querría hacer algo así, pero tu clase lo permite, a eso voy, a que puedes mejorar la clase, abstrayendo más, si quieres obligar a que cada vez que se cambie el usuario se deba hacer un conectar, cierra la conexión anterior, carece de sentido mantenerla pues haz cambiado el usuario.
#14
Hay un par de cosas que no me convencen.

¿para qué querría hacer un getPass()?,
en tu clase, tienes un setConn, el cual es medio ilógico, no terminás encapsulando nada, supongamos que seteo todo, el pass, el user, la url, etc. y luego en lugar de conectar hago un setConn con una conexión anterior que no se condicen con todos esos datos seteados antes.

¿qué pasa si hago un actualizar() sin antes haber hecho un conectar()?, explota porque conn va a estar en null y no se le puede enviar un mensaje a null.

Lo que puedes hacer para que quede mejor, desde mi punto de vista, es, cada vez que seteas un parámetro intentes de nuevo la conexión, por ejemplo, cambias el user, en ese mismo intentar conectarte de nuevo o por lo menos cerrar la conexión actual pues ya no es válida, ésta me parece la mejor opción, luego, cada vez que intentes una consulta, ver si se está conectado, si no se está probar conectarse y luego si se tiene éxito hacer la consulta, o bien lanzar la excepción de que no se está conectado o algo así.
#15
PHP / Re: Libreria math.php
25 Julio 2009, 20:00 PM
Cita de: EriK#
No quiero una función ya hecha, ya se que existe, pero quiero crear mi propia función, igual que las potencias, existe pow, pero yo cree la de elevar();
Código (php) [Seleccionar]

function raiz_q($n,$c=2){ // raices
return pow($n,1/$c);
}

¿dónde está definida pow?

Cita de: Erik#
No, pero es util para mi aprendizaje y tener una optativa a las funciones standard de PHP que en casos remotos puede saltar error
Na na na, nene, si la función standar de PHP llega a fallar, estamos bastante en el horno, colapsa la internet :P, por motivos de aprendizaje está bien, nada más, otra cosa, las funciones que trae PHP son probadas (y sobre todo las matemáticas) y mucho más rápidas.
#16
si quieres que aparezca un " dentro de un string, se utiliza el caracter de escape \, así:
Código (java) [Seleccionar]

String str = "Esto es un \"string\" que tiene \" (comillas) dentro de si";

#17
Scripting / Re: scrip ejecutable en linux
23 Julio 2009, 16:50 PM

~$ PATH=$PATH:/etc/qmail/bin/
~$ crearusuario

no debes usar el comando sh y la próxima vez que inicies sesión debes volver a setear la variable PATH, puedes toquetear algún que otro archivo de configuración para hacerlo global o bien tu archivo .bashrc para que sólo sea para la sesión de un sólo usuario.
#18
perdón caí tarde, @Swicher testear sobre qué sistema operativo se está ejecutando un programa multiplataforma es, cuanto poco, mala idea, se debe abolir las cosas propias del sistema operativo lo más que se pueda y usar las cosas multiplataforma, ésto no siempre se puede, pero se puede tratar.

Si abres, cortas y guardas las partes de un archivo en python, ¿qué tan difícil es abrir cada parte y crear un archivo nuevo desde python?. Para qué hacer las cosas en python y la interfaz sobre Delphi?, si quieres el máximo de portabilidad, puedes usar TkIter (o algo así).
#19
PHP / Re: todo en el server
10 Julio 2009, 16:16 PM
Solución sucia y rápida que se me ocurre ahora:
1 archivo que tiene por línea todos las direcciones que quieres.
Si vas a mostrar la lista de direcciones, abres el archivo y en cada tag a imprimes el link de una cierta línea.

Si vas a hacer uso del redireccionado, lees la línea especificada por n y luego haces un header a la dirección que quieres.
#20
PHP / Re: [?]Para que sirve eval()?
26 Junio 2009, 15:06 PM
@HardieVon
Código (php) [Seleccionar]

implode(',',
    array_map(create_function('$e', 'return \'"\'.$e.\'"\';'), array_values($attr_value))));

que tu no lo hayas usado no quiere decir que no exista y que no tenga utilidad, no se como estará implementada create_function, pero de lo que estoy seguro es que hace uso de la función eval().

Míralo como asm y C, en C puedes usar asm cuando quieras, sin embargo existen muchos sistemas y muy robustos que no tienen una línea de asm.