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: ....