Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    73

    [Python] Passaggio di una variabile tra files

    Salve a tutti,
    sono alle prese con un grosso problema per la mia esperienza in Python.

    Allora vi spiego la situzione:
    Ho un framework scritto in Python, questo framework è diviso in tanti moduli Python (in /usr/lib/python2.7/dist-packages/nova/..).
    Ammettiamo che in un file (/usr/lib/python2.7/dist-packages/nova/rpc/impl_kombu.py) abbia una variabile metodo = myMethod e questa variabile voglio usare in un'altro file (ad esempio in: /usr/lib/python2.7/dist-packages/nova/compute/manager.py), come posso fare?

    In pratica potrei "crearmi" un import che salva la variabile dal file impl_kombu.py e la legge da manager.py ?
    Se si..come si fa?

    Avete altre idee magari più semplici a rigurado?
    Vi ringrazio di cuore infinitamente.

    Ciao

  2. #2
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,590
    Non sono sicuro di aver capito ciò che intendi, ma per rendere disponibile il valore di una variabile ti basta una funzione che ne ritorni il valore...
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  3. #3
    Utente bannato
    Registrato dal
    Apr 2012
    Messaggi
    510

    Re: [Python] Passaggio di una variabile tra files

    Originariamente inviato da Enigma86
    Ammettiamo che in un file (/usr/lib/python2.7/dist-packages/nova/rpc/impl_kombu.py) abbia una variabile metodo = myMethod e questa variabile voglio usare in un'altro file (ad esempio in: /usr/lib/python2.7/dist-packages/nova/compute/manager.py), come posso fare?
    metodo= myMethod?
    Questo è un metodo, non una variabile.
    Per utilizzare il metodo devi procurarti un' istanza della classe e invocarlo.

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    73
    Avete ragione, vi chiedo scusa. Mi spiego meglio:

    non si tratta di metodi ma di variabile. Ammettiamo che sono nel file impl_kombu.py e li vada a definirmi la variabile pippo = 'ciao'.
    Ora, se mi sposto in un altro file, ad esempio manager.py, mi piacerebbe poter leggere quella variabile settata in impl_kombu.
    Come posso fare?
    Spero di essermi spiegato meglio questa volta

    Vi ringrazio
    Ciao

  5. #5
    Manager.py importa impl_kombu.py?
    Amaro C++, il gusto pieno dell'undefined behavior.

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    73
    No, di default non impl_kombu non importa manager.py.

  7. #7
    Originariamente inviato da Enigma86
    No, di default non impl_kombu non importa manager.py.
    Sto dicendo il contrario... Comunque se uno importa l'altro risolvi con una variabile a livello di modulo, altri conviene usare un singolo global che contenga lo "stato condiviso" del tuo framework.
    Occhio però a non abusarne, dato che i global introducono un coupling non evidente tra pezzi "lontani" del programma, rendendo più complessa la comprensione e la manutenzione del codice. Per quale motivo esattamente devi condividere questa variabile? Forse ci sono approcci migliori...
    Amaro C++, il gusto pieno dell'undefined behavior.

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    73
    Ok, grazie

    Ti spiego: ho un file di log e devo parsificarlo.
    Devo parsificarlo in base al valore di una variabile chiamata Method, cioè ogni volta che nella log entry trovo un particolare Method devo creare una nuova struttura...non so se riesco a spiegarmi :-(

    In pratica quello che devo fare è: ogni log entry deve contenere il valore della variabile Method e questa variabile è definita solo nel file impl_kombu, ma ne ho bisogno anche in altri file.

    Ecco la situazione, come la risolvo? Potresti farmi un esempio?
    Grazie Infinite

  9. #9
    Il metodo di parsing dovrebbe semplicemente essere passato al costruttore della classe che effettua il parsing.
    Amaro C++, il gusto pieno dell'undefined behavior.

  10. #10
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    73
    In che modo? Nel senso, come faccio a fare in modo che manager.py legga il valore di Method?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.