Python正在跳过指令

Python正在跳过指令,python,sublimetext2,anaconda,interpreter,Python,Sublimetext2,Anaconda,Interpreter,我遇到了一个非常奇怪的问题 通过我所进行的测试,我得出了python跳过指令的结论。(译员似乎有问题) 这是我面临问题的代码部分:- def foo(): status_packet = some_fn() print("status_packet recvd:- "+str(status_packet)) #PRINT INSTRUCTION if(status_packet == False) : do_something() elif(st

我遇到了一个非常奇怪的问题

通过我所进行的测试,我得出了python跳过指令的结论。(译员似乎有问题)

这是我面临问题的代码部分:-

def foo():
    status_packet = some_fn()
    print("status_packet recvd:- "+str(status_packet))  #PRINT INSTRUCTION
    if(status_packet == False) :
        do_something()
    elif(status_packet == True):
        print("True packet received")                   #PRINT INSTRUCTION
        return True
    else:
        error = status_packet_handling.check_for_error(status_packet)
        if(error == False):
            print("false error")                        #PRINT INSTRUCTION
            return status_packet
print(foo())                                            #PRINT INSTRUCTION
print("okay")                                           #PRINT INSTRUCTION
print("close other open ports")                         #PRINT INSTRUCTION
print("ok_1234")                                        #PRINT INSTRUCTION
sys.exit(1)
预期输出类似于:-

status_packet recvd:- True
True packet received
okay
close other open ports
ok_1234
[Finished in 10.1s]
但我得到的结果是:-

status_packet recvd:- True

ok_1234
[Finished in 10.1s]
我使用的是python2.7.10;Anaconda 2.3.0(64位)和使用升华文本3的建筑

我尝试添加打印功能和其他功能,以查看我的流程是否正确。跳过的是打印说明

我能做些什么来识别和解决这个问题

编辑:- 重要的部分是跳过的打印说明。 这方面的简化版本是:-

def foo():
    print("foo called")
    return "foo_string"
print(foo())
print("print_statement 1")
print("print_statement 2")
print("print_statement 3")
观察到的产出:-

foo called

print_statement 3
编辑2:- 我想我需要提到的是,我使用的是多模块场景,我通过函数传递模块。 这是一个更复杂的版本:-

a、 派克

b、 派克

c、 派克

输出:-


类型(状态数据包)
返回什么?您是否将字符串与bool进行比较?从foo()的流中可以看出,它返回了几个不同的内容—status\u packet的值、True或nothing。你为什么不至少在每一个可能的出口都印上一张照片,显示它返回的是什么?另外,为了防止有多个print语句可以打印,例如True,在每个打印中添加一个额外的唯一标识符,例如
print“#1”,status_packet
非常声明(Python解释器中的一个bug)需要非常的证明。提供一个重现问题的方法。现在,没有人知道你可能做错了什么。我认为你应该虚拟出一些函数,并创建一个完整的简化代码段来显示相同的错误,例如,我可以运行代码来重现(或不重现)错误。很可能是您没有显示的代码导致了奇怪的行为。例如,一些,做某事,等等-它们是否有一些不可预见的副作用?也许其中一个是修改状态包?不,复制你的代码。开始移除一大块,直到它足够小或者你不能再重现问题。
import b
import c
c.function1(b)
import sys
sys.exit(1)
import e
import f

def function2():
    returned_value = e.some_function()
    print("returned_value = "+str(returned_value))
    return returned_value
def function1(b_module):
    print(b_module.function2())
    print("print_statement_1")
    print("print_statement_2")
    print("print_statement_3")
returned_value = True

print_statement_3