• 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