Dudas sobre Python

Iniciado por juan_1, 7 Agosto 2020, 21:00 PM

0 Miembros y 1 Visitante están viendo este tema.

juan_1

Buenas chic@s, tengo dos preguntas sobre Python que aunque he buscado por otros foros no me he quedado muy convencido sobre ello.

1) No entiendo muy bien en Python la importacion de los paquetes, por ejemplo en Java si quiero usar la clase BufferedReader (para lectura de ficheros) importo el paquete junto con la clase: import java.io.BufferedReader o si quiero importar todas las clases de un paquete: import java.io.*.Pero en python hay dos modos de importacion:
import paquete.clase o from paquete import x
¿Cuando se usa la primera y cuando la segunda? Ya me ha pasado que en alguna clase si la importo de la primera manera no me detecta los metodos y dice que esa clase no ha sido importada y tengo que hacerlo con el segundo import, como la clase datetime, sin embargo con otras clases no pasa eso.

2)¿Cuál es la diferencia entre crear un atributo de la clase o un atributo de una instancia?
Me explico, podemos crear una clase Perro
class Perro():
     patas=4
y a continuacion el constructor
  def __init__(self,nombre,etc):
   self.nombre=nombre
   ...etc
mi pregunta es cual es la diferencia respecto a lo siguiente:
class Perro():

  def __init__(self,nombre,etc):
    patas=4
    self.nombre=nombre
    ...etc
cuando definir el atributo fuera del constructor y cuando fuera y la diferencia.
En Java por ejemplo siempre declaro los atributos fuera del constructor.
public class Perro{
  private final int patas=4
  private String nombre;
  private Int identificador
 
  //constructor
  public void Perro(String nombre,int identificador){
  this.nombre=nombre;
  this.identificador=identificador
}
}

tincopasan

hola:
         no puedo explicar con respecto a java porque simplemente no lo uso.
Con respecto al punto 1) depende basicamente de si los métodos son explicitos o no.

el punto 2) das por sentado que todos los perros tienen 4 patas y al ser una variable no declarada en alguna instancia, en este caso el constructor no podrás modificarla.

emperie

¿Cuando se usa la primera y cuando la segunda?

Un modulo es un fichero con código que puede tener otros scripts, nos ayuda a organizar mejor nuestro programa, cuando usamos el import en python estamos importando todas las funciones de ese fichero, cuando usamos from ejemplo import example por ejemplo, especificamos las funciones que queremos importar, y no las importamos todas.

Te dejo un vídeo donde explican muy bien el tema de los módulos.

https://www.hektorprofe.net/curso/interfaces-graficas-gui-python/modularizacion-codigo