[Python] Hilo general

Camp1

Poder se puede hacer, pero yo (personalmente) lo veo como un smell. No te sirve devolver un valor fuera del dominio para el caso ese que es despreciable? (Ej: -1)

desu

#537 Es una práctica muy común, en python sería algo así (?). No me dejaba poner el tag por defecto xd

from dataclasses import dataclass
from abc import ABC

@dataclass
class Result(ABC):
  tag: str
  pass

@dataclass
class Success(Result):
  tag: str
  result: str

@dataclass
class Fail(Result):
  tag: str
  error: str

def success_case() -> Result:
  return Success("SUCC", "Sucess data")

def fail_case() -> Result:
  return Fail("FAIL", "Some error message")

result = success_case()
failed = fail_case()

if result.tag == "SUCC":
  print(result)

if failed.tag == "FAIL":
  print(failed)
4 respuestas
perez_chuck

.

HeXaN

Mejor:

if 'SUCC' in result.tag:
    print(result)
2
Fyn4r

#542 esa es la idea si, pero me daba pereza usar dataclass xd

Gracias chavules

No me quedan manitas para daros a los 2 xd

Wei-Yu

#542 si quieres usar un wrapper para éxito/fracaso no lo compruebes con un string y tira de bool.

1 respuesta
Slowbro

#542 Hostia, no conocía lo de dataclass. De hecho lo de tipar las funciones es algo a lo que me debería de acostumbrar.

¡Gracias por el aporte!

eondev

#546 Lo suyo sería mejor pattern matching o either. Eso de strings me parece una guarrada XD.

Y bueno, leyendo ahora a #537 por qué no retornas 2 valores en vez de agruparlo en una tupla? :thinking:

1 respuesta
Fyn4r

#548 Porque si en python devuelves 2 valores lo que hace es meterlos en una tupla xD

1 respuesta
Wei-Yu

la sintaxis de los optional de python da sida

la lib de typings en general es bastante terrible la verdad pero bueno

eondev

#549 De eso no tenia ni puta idea o lo habia borrado de mi mente xDDDD
ya hace un tiempecito que no lo toco

1 respuesta
Fyn4r

#551 que si haces un

return x, y

y luego recibes con

a,b = f()

Para ti es transparente, pero internamente lo empaqueta así

2 respuestas
eondev

#552 Sí sí xD

1 respuesta
Fyn4r

#553 bueno eh, no me pegues

15 días después
desu

#552 Hola sé que llego un poco tarde pero estoy programando python estos días.

Se haría con una Type alias. https://docs.python.org/3/library/typing.html
Por ejemplo:

from typing import Dict, Tuple, Sequence

ConnectionOptions = Dict[str, str]
Address = Tuple[str, int]
Server = Tuple[Address, ConnectionOptions]

def broadcast_message(message: str, servers: Sequence[Server]) -> None:
    ...

# The static type checker will treat the previous type signature as
# being exactly equivalent to this one.
def broadcast_message(
        message: str,
        servers: Sequence[Tuple[Tuple[str, int], Dict[str, str]]]) -> None:
    ...

De esta forma se podría hacer railway programming por ejemplo. Quizás me pongo un día y lo pruebo a ver cuales son los limites de python.

Estoy viendo que esta mejor de lo que pensaba. Lo ponía por debajo de typescript pero esta a la altura en algunas cosas.


También se pueden definir Union

# Union type; Union[X, Y] means either X or Y.

Otra opción
https://pymotw.com/2/collections/namedtuple.html

MisKo

En Feda/Dev he puesto una oferta de curro que me ha llegado por email de Python en Madrid. Lo comento por aqui por si hay alguien que no se pase a diario por allí, lo cual me parecería mal.

Un saludito!

4
Wei-Yu

Este viernes tenía algo de hueco en el curro y empecé a trastear con una mini utilidad CLI para gestionar las configuraciones a nivel local de un proyecto.

El caso es que quería algo que no necesitase libs externas para no complicar al personal, así que me vi relegado a usar argparse y me parece que está hecho con el ojete. Conozco click y la gente habla muy bien, pero tirando de stdlib, ¿no hay algo que no esté tan mal hecho?

eXtreM3

APRENDE A PROGRAMAR EN PYTHON CON EL NUEVO CANAL DE YOUTUBE DE MICROSOFT

https://wwwhatsnew.com/2019/09/21/microsoft-abre-canal-en-youtube-para-ensenar-a-desarrolladores-como-programar-en-python/

En un esfuerzo por incentivar y facilitar a una nueva ola de programadores el aprendizaje de Python, un lenguaje de programación que ha tenido gran auge en los últimos tiempos, Microsoft ha puesto a disposición de forma gratuita un curso en YouTube con un total de 44 videos.

Designado con el nombre Python for Begginners, el contenido de estos videos consta de lecciones, con una duración de 3 a 4 minutos.

En ellos, Christopher Harrison, Director Senior de programas de Microsoft y Susan Ibach, Directora de desarrollo empresarial de la unidad AI Gaming de Microsoft, enseñan de forma didáctica los principios y enunciados que rigen la programación en Python.

https://www.youtube.com/playlist?list=PLlrxD0HtieHhS8VzuMCfQD4uJ9yne1mE6

6
NocAB

¿Pensáis que merecen la pena los títulos de los cursos online?

Estoy haciendo el curso Introduction to Computer Science and Programming Using Python que me está pareciendo muy bueno y estoy dudando si hacer la opción verificada para optar al título.

1 respuesta
HeXaN

#559 Por norma general esos cursos no los tienen en cuenta.

1
eXtreM3

Siempre es mejor tenerlo que no tenerlo, pero en la mayoría de sitios no será relevante.

1
B

¿Qué cosas programáis en python? ¿O dónde es donde mayor demanda tiene? ¿Aplicaciones de escritorio, móvil, web?

2 respuestas
HeXaN

#562 Ciencia de datos.

1 respuesta
B

#563 No entiendo, ¿Podrías explicarlo un poco?

2 respuestas
X-Crim

Poq?

eXtreM3

#564 Machine Learning por ejemplo.

Fyn4r

#562 optimización combinatoria.

#564 creo que no existe nada más concreto que lo que te ha dicho xd

1 respuesta
B

#567 hombre yo lo conozco en uso de webs, incluso de IA, pero en escritorio lo veo también con mejores alternativas, por eso pregunto por qué el interés a día de hoy de python cuando para web hay cosas mejores y para IA muchas alternativas iguales o mejores.

2 respuestas
Fyn4r

#568 para data science que alternativas hay? R? Scala? Y para de contar

1 respuesta
B

#569 No sé nada acerca de Ciencia de Datos.

1 respuesta