我试图在运行函数以确定某个值确定为0或1时基本上跳过if语句的其余部分。如果该值为0,则通过if语句的其余部分(如果为1) ,它将继续使用if语句并在其中运行。这是代码:
test2.py
import os, sys
from functiontest import function
message = 'foo'
check = 0
if 'foo' in message:
check = function(message,check)
print(check)
print('bar')
if check == 0:
print('foo not recognized')
功能文件为
functiontest.py
import os, sys
def function(a,b):
print('checking message')
a = a.split()
print(a)
if a[0] == 'foo':
b = 1
print(b)
return b
else:
b = 0
return b
当检测到除“ foo”以外的其他字词时,应仅输出“无法识别foo”。使用“ foot”一词,它仍然在if语句中运行代码,因为它包含foo,而我不希望这样做。有没有办法从函数侧传递其余的if语句?我知道如何在主test2.py代码中使用if else语句来执行此操作,因为我传递了check参数,但是我希望使主代码尽可能的简洁,因此有一种方法可以在内部完成functiontest.py?谢谢。
答案 0 :(得分:0)
这可以通过执行How to exit an if clause
中建议的方法来解决。我不清楚这将解决您的问题,但这将是我的代码:
import os, sys
def check_message(message):
print('Checking message')
for m in message.split():
if m == 'foo':
return True
else:
return False
def wrapper(message):
if 'foo' in message:
check = check_message(message)
if check:
return
print(check)
print('bar')
message = 'foo'
wrapper(message)
但是我不明白为什么要仔细检查消息,而不仅仅是:
def wrapper(message):
if check_message(message)
return
print('bar')
message = 'foo'
wrapper(message)
在这种情况下,仅当邮件没有包含'bar'
个单词时才会打印'foo'
。
另外,关于代码,您不需要输入check
,因为您没有在function
函数中使用它,因此无论如何都将其覆盖。
最好使用True
和False
代替1
和0