Skip to content
Advertisement

Using return value inside another function

I have these two functions:

def check_channel_number(self):
    print "***************Channel Checker *********************" 
    print ''
    user_channel_number = int(re.sub('D', '', raw_input("Enter a channel number, (3digit): "))[:3]);
    channel = ("channelNr= '%d'") % (user_channel_number)
    print channel
    # channel_search = channel + str(user_channel_number)
    datafile = file('output.txt')

    found = False
    for line in datafile:
        if channel in line:            
            found = True 
            print 'The channel number you entered is correct and will be deleted'
            return user_channel_number

    print 'The channel number you entered is not on the planner'
    return False

and

def delete_events(self):
    if user_channel_number == True:
        return 'The program number is correct and will be deleted'

        # action = 'DeleteEvent'
        menu_action = 'all'
        book = 'RECYC:687869882'
        arg_list = [('C:\Users\yke01\Documents\StormTest\Scripts\Completed'
                        '\Utils\UPNP_Client_Cmd_Line.py')]
        arg_list.append(' --action=')
        arg_list.append(action)
        arg_list.append(' --ip=')
        arg_list.append('10.10.8.89')
        arg_list.append(' --objectId=')
        arg_list.append(book)
        subprocess.call(["python", arg_list])

        print 'The program deleted successfully'

When I run my script, it says that user_channel_number is not defined globally. How can I use user_channel_number inside the delete_events function?

Advertisement

Answer

Functions can not share their local variables. You can return the value from the first and pass it to the second:

def check_channel_number(self):
    ...
    return user_channel_number

def delete_events(self):
    user_channel_number = self.check_channel_number()
    ...

Or save value on the object:

def check_channel_number(self):
    ...
    self.user_channel_number = user_channel_number
    ...

def delete_events(self):
    if self.user_channel_number:
         ....
User contributions licensed under: CC BY-SA
9 People found this is helpful
Advertisement