Forum >> Principianti >> Passaggio tra un programma e l'altro

Pagina: 1 2 Avanti

Buonasera a tutti, questa volta il mio "problema" riguarda la necessita di richiamare da un programma PRINCIPALE un programma "figlio" che fa una tal funzione, finita la quale deve ridare il controllo al programma PRINCIPALE.
(Come posso fare a richiamare/avviare un altro programma Python e poi quando ho finito con questo , tornare al primo.)
Spero essere stato chiaro.
Grazie

Alberto
------
Alberto
Ciao caro, non so se ci sono controindicazioni nel tuo caso, ma usare un semplice import (o from <module> import <identifier>) non va bene?

Fammi sapere.
Cya
importandolo.
se crei un file slave.py e ci scrivi dentro

def stampa():
	print("ciao")




e poi crei nella stessa cartella un file main.py e ci scrivi dentro


import slave
slave.stampa()
se esegui quest'ultimo lo script va a richiamare la funzione stampa dall'altro file.







ovviamente il mio è un esempio minimale, ma la filosofia è quella
ops... aveva già risposto daniele, sorry
Quindi trattare il programma secondario come se fosse un classe di comando (es. tkinter) ?

Grazie, ciao

Alberto
------
Alberto
ops... aveva già risposto daniele, sorry
Nessun problema, melius est abundare quam deficere.

Cya
Quindi trattare il programma secondario come se fosse un classe di comando (es. tkinter) ?

Grazie, ciao

Alberto

si.

nota che nel programma main quando richiami la funzione devi indicarne anche la provenienza, altrimenti lui quella funzione la va a cercare invano nello script main e non in quello slave.

si fa semplicemente facendo antemporre al metodo stampa() il modulo importato slave, che quindi diventa:

slave.stampa()

un altro aspetto molto interessante è che grazie alla funzione di cui sotto, python riesce a capire se il file .py eseguito, sta lavorando come main o come slave, impostando doppi comportamenti e utilizzi a seconda della modalità



if __name__ == "__main__":
	main()


se entri qui sotto è tutto ben spiegato da Pymike, programmatore che ha creato un ottimo videocorso python su youtube

https://www.programmareinpython.it/video-corso-python-intermedio/03-if-name-main/



--- Ultima modifica di stix77 in data 2018-01-19 10:05:54 ---
importandolo.
se crei un file slave.py e ci scrivi dentro

def stampa():
	print("ciao")




e poi crei nella stessa cartella un file main.py e ci scrivi dentro


import slave
slave.stampa()
se esegui quest'ultimo lo script va a richiamare la funzione stampa dall'altro file.







ovviamente il mio è un esempio minimale, ma la filosofia è quella

Dal tuo esempio comprendo che posso eseguire dei comandi presenti su un'altro file; quello che vorrei fare io e' che passo proprio il CONTROLLO ad un'altro programma, il quale esegue una serie di funzioni.
In pratica il primo programma e' un menu che facendo delle selezioni lancia il programma che di fatto diventa il principale.

Grazie a tutti
------
Alberto
Quindi trattare il programma secondario come se fosse un classe di comando (es. tkinter) ?

Grazie, ciao

Alberto

si.

nota che nel programma main quando richiami la funzione devi indicarne anche la provenienza, altrimenti lui quella funzione la va a cercare invano nello script main e non in quello slave.

si fa semplicemente facendo antemporre al metodo stampa() il modulo importato slave, che quindi diventa:

slave.stampa()

un altro aspetto molto interessante è che grazie alla funzione di cui sotto, python riesce a capire se il file .py eseguito, sta lavorando come main o come slave, impostando doppi comportamenti e utilizzi a seconda della modalità



if __name__ == "__main__":
	main()


se entri qui sotto è tutto ben spiegato da Pymike, programmatore che ha creato un ottimo videocorso python su youtube

https://www.programmareinpython.it/video-corso-python-intermedio/03-if-name-main/



--- Ultima modifica di stix77 in data 2018-01-19 10:05:54 ---
Buogiorno, provato e funziona; ora un'altro quesito.

Se nel modulo importato io avessi una classe che definisce un'interfaccia grafica Tkinter , come faccio a richiamarla ?
Ho provato ad adattare il metodo da te utilizzato in precedenza ma con la classe non mi funziona.
Ho un sacco di confisione in testa ...... scusate

Alberto
------
Alberto
Prova a creare un istanza della classe una volta importata....


Pagina: 1 2 Avanti



Esegui il login per scrivere una risposta.