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
}
}