为什么我的代码没有按顺序执行?

2024-10-04 11:32:37 发布

您现在位置:Python中文网/ 问答频道 /正文

在试图解决一个更大的问题时,我将代码简化为两个简单的命令,发现它们没有按顺序执行。你知道吗

我的想法是在运行函数时单击一个按钮(3D切片器)后给用户一种反馈。所以,我希望在点击按钮之后立即冻结它,直到操作完成。因此,我尝试了以下方法来检查第一个命令是否在第一个位置执行:

def onStartSegmentation(self):
      self.segmentButton.setEnabled(False)

      sleep(3)
      print("2nd step: Starting segmentation")

但是,结果是睡眠3秒钟,然后立即一个接一个地执行这两个命令。你知道吗

我知道这听起来很傻,但我猜不出为什么会这样。你知道吗


Tags: 方法函数代码用户命令selffalse顺序
1条回答
网友
1楼 · 发布于 2024-10-04 11:32:37

print()函数已缓冲。这意味着输出将在显示到屏幕之前进行缓冲,直到缓冲区已满或遇到新行字符。如果您想让您的输出立即显示在屏幕上,您需要使用系统标准冲洗(),或者需要在参数to print函数中显式指定它。你知道吗

def onStartSegmentation(self):
      print("1st step: Starting segmentation", flush = True)

      sleep(3)
      print("2nd step: Starting segmentation", flush = True)

def onStartSegmentation(self):
          print("1st step: Starting segmentation")
          sys.stdout.flush()

          sleep(3)
          print("2nd step: Starting segmentation")
          sys.stdout.flush()

相关问题 更多 >