Tengo una clase con una __init__función.
¿Cómo puedo devolver un valor entero de esta función cuando se crea un objeto?
Escribí un programa, donde se __init__analiza la línea de comandos y necesito tener algún valor establecido. ¿Está bien configurarlo en la variable global y usarlo en otras funciones miembro? Si es así, ¿cómo se hace? Hasta ahora, declaré una variable fuera de la clase. ¿Y configurar una función no se refleja en otra función?

__init__; podemos ayudarlo si describe lo que realmente está tratando de lograr.Respuestas:
__init__Se requiere devolver Ninguno. No puede (o al menos no debería) devolver otra cosa.Intente hacer lo que quiera para devolver una variable de instancia (o función).
fuente
newaqui ¿Estánewimplícito en Python? Asumí que la semántica de Python era diferente de Java y los otros lenguajes que usan esta palabra.super().__init__la clase derivada sin tener que transmitirlos a través de una variable de instancia.¿Por qué querrías hacer eso?
Si desea devolver algún otro objeto cuando se llama a una clase, utilice el
__new__()método:fuente
__init__, se da cuenta de que realmente, para brindar la flexibilidad que desea, necesita una fábrica de clases que devuelva instancias de subclases especializadas. Pero los usuarios de su biblioteca ya están usando su API existente. Para conservarlo, anula__new__para devolver instancias de sus subclases especializadas.datetimemódulo de la Biblioteca estándar. Se usa__new__exactamente de esta manera.De la documentación de
__init__:Como prueba, este código:
Da este error:
fuente
El uso de muestra del asunto en cuestión puede ser como:
No tengo suficiente reputación por lo que no puedo escribir un comentario, ¡es una locura! Ojalá pudiera publicarlo como comentario para weronika
fuente
selfno está definido en__new__(cls, Item)El
__init__método, al igual que otros métodos y funciones, devuelve Ninguno de forma predeterminada en ausencia de una declaración de retorno, por lo que puede escribirlo como cualquiera de estos:Pero, por supuesto, agregar el
return Noneno te compra nada.No estoy seguro de lo que buscas, pero es posible que te interese uno de estos:
huellas dactilares:
fuente
f = Foo().value__init__.__init__no devuelve nada y siempre debe volverNone.fuente
Puede simplemente establecerlo en una variable de clase y leerlo desde el programa principal:
fuente
Solo quería agregar, puede devolver clases en
__init__El método anterior le ayuda a implementar una acción específica ante una excepción en su prueba
fuente
super().__init__está regresandoNone, por lo que está regresandoNone, lo cual está bien, pero es redundante.init () no devuelve ningún valor resuelto perfectamente
salida: mi velocidad es de 21 kmh
fuente
Bueno, si ya no le importa la instancia del objeto ... ¡puede reemplazarla!
fuente
selfdentro de ese constructor.