Python正在跳过说明

时间:2016-02-24 17:42:45

标签: 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(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]

我正在使用 Python 2.7.10; Anaconda 2.3.0(64位)并使用 Sublime Text 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.py

import b
import c
c.function1(b)
import sys
sys.exit(1)

b.py

import e
import f

def function2():
    returned_value = e.some_function()
    print("returned_value = "+str(returned_value))
    return returned_value

c.py

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

0 个答案:

没有答案