web-dev-qa-db-fra.com

Python - variable d'accès dans une autre classe

J'ai 1 fenêtre principale et 1 boîte de dialogue. Maintenant, je dois accéder à la variable dans la fenêtre principale à partir de la boîte de dialogue.

Par exemple en Java nous avons 2 classes: demo et myclass Dans ma classe j'ai le code suivant: public static int number = 5; Ensuite, j'y accède simplement en utilisant myclass.number.

Comment le faire en python en utilisant rapidement ide?

Dois-je importer la fenêtre principale dans la boîte de dialogue pour accéder à la variable statique?

1
user26030

Passez simplement votre instance mainwindow, quelque chose comme ceci:

class MyWindow(Gtk.Window):
    def __init__(self):
        # Do your thing...

        self.spam = "spam'n'eggs"

    def on_opendialog_clicked(self, widget):
        dialog = MyDialog(self)
        dialog.run()
        dialog.destroy()

class MyDialog(Gtk.Dialog):
    def __init__(self, mainwindow):
        # ...

        print(mainwindow.spam)

Jetez un oeil à ma réponse dans cette question qui est presque similaire, seulement l'inverse.

1
Timo

Je ne sais pas si c'est la façon "pro" de le faire ou non, mais vous pouvez le passer à votre variable lorsque vous le générez.

J'ai créé une boîte de dialogue de génération de fichiers en lui donnant le répertoire de sortie par défaut et le nom par défaut du fichier. Mon code ressemble à: def __init__(self,parent,output_dir,filename), et lorsque vous l'appelez, assurez-vous de lui transmettre ce dont il a besoin, par exemple. window(output_dir,filename)

0
Jobi Carter