15.12.2022 Views

Python Eficaz

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

preferências do usuário e afins para que possa renderizá-la corretamente.

No exemplo a seguir, definimos uma caixa de diálogo que lê a partir das

preferências globais o local-padrão para salvamento do arquivo:

# dialog.py

import app

class Dialog(object):

def __init__(self, save_dir):

self.save_dir = save_dir

# ...

save_dialog = Dialog(app.prefs.get('save_dir'))

def show():

# ...

O problema é que o módulo app que contém o objeto prefs também importa a

classe dialog para mostrar a caixa de diálogo no início do programa.

# app.py

import dialog

class Prefs(object):

# ...

def get(self, name):

# ...

prefs = Prefs()

dialog.show()

É uma dependência circular. Ao tentar usar o módulo app do programa principal,

teremos uma exceção ao importá-lo:

Traceback (most recent call last):

File "main.py", line 4, in <module>

import app

File "app.py", line 4, in <module>

www.full-ebook.com

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!