我有两个功能.请参阅以下功能;
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
Run Code Online (Sandbox Code Playgroud)
只想在以下函数中使用(user_channel_number)的返回值.
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'
Run Code Online (Sandbox Code Playgroud)
当我运行我的脚本时,它说user_channel_number没有全局定义?我user_channel_number该如何调用delete_events()函数内部?
当您在函数内部定义变量时,它是一个局部变量,这意味着它只能在该函数中访问.
在一个班级内
看起来你在一个类中,所以你可以通过这样定义它来使类中的所有方法都可以访问该变量:
def check_channel_number(self):
self.user_channel_number = ...
Run Code Online (Sandbox Code Playgroud)
然后在第二个函数中,您可以像下面这样使用它:
def delete_events(self):
if self.user_channel_number:
Run Code Online (Sandbox Code Playgroud)
课外
如果您没有在类中使用方法,则可以使用global内置函数.
例如,
def check_channel_number():
global user_channel_number
user_channel_number = ...
def delete_events():
if user_channel_number:
...
Run Code Online (Sandbox Code Playgroud)
使用函数返回的值
而不是在你的第一个函数中check_channel_number(),你可以让它返回user_channel_number.然后,您可以在其中调用该函数delete_events(),如下所示:
def check_channel_number():
user_channel_number = ...
return user_channel_number
def delete_events():
if check_channel_number():
...
Run Code Online (Sandbox Code Playgroud)
函数不能共享其局部变量。您可以从第一个返回值,然后将其传递给第二个:
def check_channel_number(self):
...
return user_channel_number
def delete_events(self):
user_channel_number = self.check_channel_number()
...
Run Code Online (Sandbox Code Playgroud)
或在对象上保存值:
def check_channel_number(self):
...
self.user_channel_number = user_channel_number
...
def delete_events(self):
if self.user_channel_number:
....
Run Code Online (Sandbox Code Playgroud)