me sale el siguiente error rather than relying on Globals UnboundLocalError: local variable ‘name’ referenced before assignment ¿Qué podr...

Wilson Delgado

Wilson Delgado

Pregunta
studenthace 5 años

me sale el siguiente error

rather than relying on Globals

UnboundLocalError: local variable ‘name’ referenced before assignment

¿Qué podría hacer?

class Contact: def __init__(self, name,phone,email): self._name=name self.phone=phone self.email=email class contactBook: def __init___(self): self.__contacts=[] def add(self, name,phone,email): print(f'name: {name},phone: {phone}, email: {email}') def run(): contact_book = contactBook(name, phone, email) while True: command = str(input(''' What do you want? [A]dd contact [U]pdate contact [S]earch contact [D]elete contact [L]ist contact [E]xit ''')) if command == 'a': name = str(input('Write the name of the contact')) phone = str(input('Write the telephone of the contact')) email = str(input('Write the email of the contact')) elif command == 'u': print('Update contact') elif command == 's': print('Search contact') elif command == 'd': print('Delete contact') elif command == 'l': print('List contact') elif command == 'e': break else: print('Command not Found.') if __name__ == '__main__': run()
1 respuestas
para escribir tu comentario
    Luis Angel Avila Torres

    Luis Angel Avila Torres

    studenthace 5 años

    El error se debe a que en la primera línea del método run estás enviando los parámetros name, phone e email y estas 3 variables aún no tienen un valor asignado. En esta línea se debe llamar la clase sin parámetros para que solo llame el método constructor (_init_) de la siguiente forma:

    contact_book = ContactBook()

    Adicionalmente, recuerda que por convención los nombres de clases se escriben con la primera letra en mayúscula, lo digo porque el nombre de tu clase ContactoBook está escrito con la primera letra en minúscula.

Curso de Python 2019

Curso de Python 2019

Python es una pieza fundamental de varios sistemas de software más importantes del mundo. Simple, claro y con un código legible, Python es el lenguaje por excelencia para la programación web y la ciencia de datos. Aprende este lenguaje a partir de proyectos prácticos que harás desde cero.

Curso de Python 2019
Curso de Python 2019

Curso de Python 2019

Python es una pieza fundamental de varios sistemas de software más importantes del mundo. Simple, claro y con un código legible, Python es el lenguaje por excelencia para la programación web y la ciencia de datos. Aprende este lenguaje a partir de proyectos prácticos que harás desde cero.