Questo forum utilizza i cookies
Questo forum fa uso di cookie per migliorare l'esperienza utente. I cookie sono piccoli file di testo memorizzati sul tuo browser. I cookie impostati dal forum possono essere utilizzati solo su questo sito e non costituiscono rischio per la sicurezza, vengono utilizzati unicamente per memorizzare le tue preferenze. Navigando sul sito accetti che RaspberryItaly installi i cookie sul tuo browser.
Per maggiori informazioni consulta l'informativa sui Cookie di RasberryItaly

Un cookie verra memorizzato nel browser indipendentemente dalla scelta per evitare che questa domanda ti venga posta di nuovo. Sarai in grado di modificare le impostazioni dei cookie in qualsiasi momento utilizzando il link nel footer.
  • Benvenuti su RaspberryItaly!
Benvenuto ospite! Login Login con Facebook Registrati Login with Facebook


Valutazione discussione:
  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5

[-]
Tags
definizione di una variabile

[Risolto] definizione di una variabile
#1
Ciao a tutti, sto scrivendo uno script in python (praticamente è l'unione di 2 script)per l'invio di un valore contenuto in una variabile tramite bot telegram.
Questa variabile è definita in una funzione e l'invio del messaggio in un'altra funzione. Visto che le variabili sono locali, come faccio a recuperare il valore da un'altra funzione?
Il primo script interroga lo stato di un GPIO e lo salva in una variabile (ten)
Il secondo risponde ad un messaggio di telegram in base a cosa gli viene chiesto (se digito /hello mi risponde Ciao!)
Vorrei che al posto di "ciao!" mi restituisse il valore della variabile ten.
Vorrei anche avere la possibilità che inviando diversi messaggi mi legga altrettante variabili...
Codice:
#28/10/2017
#V10.0

import RPi.GPIO as GPIO
import time
import subprocess

GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)

PIN_PROVA27 = 27
GPIO.setup(PIN_PROVA27, GPIO.IN, pull_up_down = GPIO.PUD_DOWN)
stato27 = GPIO.input(PIN_PROVA27)
parziale27 = 0
count27 = 2


def cambio27():
if stato27 == 1:
ten = "UP"
             
else:
ten =  "DOWN"
             
       print time.strftime("%a %d %B %Y %H:%M:%S")
print "La tensione di rete e' "  + ten




       
while True: #loop infinito. inserire i casi all'interno del loop

stato27 = GPIO.input(PIN_PROVA27)

if stato27 != parziale27:
count27 = 1
else:
count27 = count27 + 1
parziale27 = stato27


if count27 > 1000:
count27 = 2
if count27 == 1:
cambio27()

time.sleep(0.01)

Codice:
import telepot
import telepot.api
import time

bot = telepot.Bot('CHIAVE TOKEN')

def handle(msg):
       chat_id = msg['chat']['id']
       text = msg['text']

       if text == '/hello':
               bot.sendMessage(chat_id, 'Ciao!')


bot.message_loop(handle)

while 1:
       time.sleep(500)
Risposta
#2
Le funzioni possono avere un risultato di ritorno (nel tuo caso può essere il valore della variabile locale, che puoi assegnare a una variabile globale, o passare come argomento a un'altra variabile.
Vedi qui.
Oppure puoi richiamare una funzione da dentro un'altra funzione. Oppure, ancora, puoi impostare l'uso di variabili globali dentro a una funzione.
Risposta
#3
Thumbs Up 
ok grazie
Risposta
  


Vai al forum:


Navigazione: 1 Ospite(i)
Forum con nuovi Post
Forum senza nuovi post
Forum bloccato
Forum Redirect