[ Foro de Python ]

python clases

07-Apr-2018 10:34
Invitado (ben)
1 Respuestas

Por mi cuenta he intentado hacer programas sencillos con clases pero siempre tengo el matiex problema: creo la clase y cuando ya la he creada con todas sus funciones, hago funciones externas a la clase para llamar a los métodos de la clase. Donde tengo los problemas es en estas funciones externas a la clase. A ver si me puedes solucionar la duda:
Yo tengo aiixò por ejemplo:
--------- CLASE ----------
class Persona:
  diccionari_de_persones = {}
  def __init __ (self, nombre, apellido, dni):
           self.nom = nombre
           self.cognom = apellido
           self.dni = dni
           if self.nom not in Persona. Diccionari_de_persones:
                        Persona. Diccionari_de_persones [self.nom] = self.cognom, self.dni
  def imprimir_diccionari (self):
          print (Persona. Diccionari_de_persones)
------------------ FUNCIONES --------------
def nova_persona ():
     nombre = input ()
     apellido = input ()
     dni = str (input ())
     nova_p = Persona (nombre, apellido, dni)
def imprimir ():
?. Imprimir_diccionari --------> (¿Aqui on tengo el problema ... Que debo poner donde pone interrogantes? Esque LA PRACTICA DE LOS JUGADORES TAMBIÉN me cuesta mucho AL HORA DE SABER QUE PONER. Estoy con este problema desde hace días y he mirado por internet pero??en fin lugar ponen funciones externas en clase sino que solo llaman a la clase direcatment en el prorama principal ...)
------------ PROGRAMA PRINCIPAL -------------
while True:
      opcion = input ()
      if opcion == 'nuevo':
            nova_persona ()
       Elif opcion == '2':
             Imprimir ()


09-Apr-2018 12:58
Nacho Cabanes (+36)

No tengo claro lo que pretendes. ¿Esa función imprimir no debería recibir como parámetro la lista de datos a imprimir?  Por otra parte, ¿por qué cada persona contiene un "diccionario de personas"?






Si ya eres usuario del sistema, puedes contestar desde tu cuenta y así ganar prestigio.

Si sólo eres un visitante, puedes optar por...