Python 3.x print()在异常后延迟输出到控制台,打破了日志记录顺序

Python 3.x print()在异常后延迟输出到控制台,打破了日志记录顺序,python-3.x,python-unittest,Python 3.x,Python Unittest,我有以下验证例程: def validate_schema(self, name, data, schema_filename): Logging.message("validating {0} against schema".format(name)) with open(schema_filename) as f: schema = json.load(f) resolver = jsonschema.RefResolver(

我有以下验证例程:

def validate_schema(self, name, data, schema_filename):
    Logging.message("validating {0} against schema".format(name))
    with open(schema_filename) as f:
        schema = json.load(f)
        resolver = jsonschema.RefResolver(
            "file:///{0}/".format(os.path.abspath(schema_filename.rsplit('/', 1)[0])), schema
        )
        jsonschema.validate(data, schema, resolver=resolver)
        Logging.ok()
类日志记录包含:

@staticmethod
def ok():
    print("OK")

@staticmethod
def message(msg):
    print("> " + msg, end='... ')
当模式验证失败时,我首先得到异常文本,然后验证。。。下面的消息

为什么会发生这种情况以及如何保持输出顺序?

刷新stdout就可以做到这一点

@staticmethod
def message(text):
    print("> " + text, end='... ')
    sys.stdout.flush()