Python Forum
accessing local variable outside class
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
accessing local variable outside class
#1
Hello,I am doing python code using raspberry pi for calculating body temperature. I want to know how can i access local variable that is declared in one function to the outside function


# Import Libraries
import os
import glob
import time
import RPi.GPIO as GPIO
from time import sleep
 
# Initialize the GPIO Pins
os.system('modprobe w1-gpio')  # Turns on the GPIO module
os.system('modprobe w1-therm') # Turns on the Temperature module
 
# Finds the correct device file that holds the temperature data
base_dir = '/sys/bus/w1/devices/'
device_folder = glob.glob(base_dir + '28*')[0]
device_file = device_folder + '/w1_slave'
 
# A function that reads the sensors data
def read_temp_raw():
  f = open(device_file, 'r') # Opens the temperature device file
  lines = f.readlines() # Returns the text
  f.close()
  return lines
 
# Convert the value of the sensor into a temperature
def read_temp():
  lines = read_temp_raw() # Read the temperature 'device file'
  # While the first line does not contain 'YES', wait for 0.2s
  # and then read the device file again.
  while lines[0].strip()[-3:] != 'YES':
    time.sleep(0.1)
    lines = read_temp_raw()
 
  # Look for the position of the '=' in the second line of the
  # device file.
  equals_pos = lines[1].find('t=')
 
  # If the '=' is found, convert the rest of the line after the
  # '=' into degrees Celsius, then degrees Fahrenheit
  if equals_pos != -1:
    temp_string = lines[1][equals_pos+2:]
    temp_c = float(temp_string) / 1000.0
    temp_f = temp_c * 9.0 / 5.0 + 32.0
    return temp_c, temp_f

print(read_temp())
 
read_temp()
if temp_c >=20 and temp_f >=75:
        GPIO.setwarnings(False)
        #Select GPIO mode
        GPIO.setmode(GPIO.BCM)
          #Set buzzer - pin 23 as output
        buzzer=23 
        GPIO.setup(buzzer,GPIO.OUT)
        GPIO.output(buzzer,GPIO.HIGH)
        print("Beep")

# Print out the temperature until the program is stopped.
#while True:
  #print(read_temp())
  #time.sleep(9)
Reply
#2
In the title you talk about class, but there is no OOP/class in your code, i.e. it's not very clear what you are asking/what you have problem with....
In your code you use return to pass value from function to outside scope and that is the correct way to do... Maybe elaborate further on what you are struggling with...

Looking closer at your code - on line 47 you need to assign what you return from your function to some variable in order ti use these values further in the code, e.g.
temp_c, temp_f = read_temp() #unpack the tuple returned by the function into two variables. I use the names you use later in the code
Note that you may want to do this first and then print these variables, instead of calling the function twice (on lines 45 and 47)...
If you can't explain it to a six year old, you don't understand it yourself, Albert Einstein
How to Ask Questions The Smart Way: link and another link
Create MCV example
Debug small programs

Reply
#3
Hello,I am doing python code using raspberry pi for calculating body temperature. I want to know how can i access local variable that is declared in one function to the outside function.
Reply
#4
Please, don't start new threads unnecessarily. I deleted the second one you created and merged the third one into the original thread. I think my answer to your original post address the issue. If you have further questions, post in this thread.
If you can't explain it to a six year old, you don't understand it yourself, Albert Einstein
How to Ask Questions The Smart Way: link and another link
Create MCV example
Debug small programs

Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  It's saying my global variable is a local variable Radical 5 1,098 Oct-02-2023, 12:57 AM
Last Post: deanhystad
  Variable Types in a class nafshar 9 2,363 Oct-07-2022, 07:13 PM
Last Post: deanhystad
  can Inner Class reference the Outer Class's static variable? raykuan 6 5,774 Jul-01-2022, 06:34 AM
Last Post: SharonDutton
  accessing value in dict_values class CompleteNewb 14 5,024 Mar-31-2022, 04:02 AM
Last Post: deanhystad
  UnboundLocalError: local variable 'wmi' referenced before assignment ilknurg 2 1,859 Feb-10-2022, 07:36 PM
Last Post: deanhystad
  Calling a base class variable from an inherited class CompleteNewb 3 1,595 Jan-20-2022, 04:50 AM
Last Post: CompleteNewb
  Can we access instance variable of parent class in child class using inheritance akdube 3 13,889 Nov-13-2020, 03:43 AM
Last Post: SalsaBeanDip
  Class variable / instance variable ifigazsi 9 4,221 Jul-28-2020, 11:40 AM
Last Post: buran
  Assignment of non-existing class variable is accepted - Why? DrZ 6 4,188 Jul-13-2020, 03:53 PM
Last Post: deanhystad
  Limiting valid values for a variable in a class WJSwan 5 3,514 Jul-06-2020, 07:17 AM
Last Post: Gribouillis

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020