microbit Python: 使用时间模块时,如何保持sleep()单位为毫秒?

microbit Python: When using time module, how to keep sleep() units in milliseconds?

microbit muPython中:sleep(ms),单位是毫秒。

但是,如果导入时间模块并使用 sleep(),那么 muPython 将使用时间模块的睡眠时间(以整秒为单位)。编码器必须替换时间模块的 sleep_ms(ms) 以获得单位为毫秒。

如果使用时间模块,如何强制使用“正常”睡眠(毫秒)?

或者更一般地说,我如何指定使用来自“普通”muPython 的任何命令,而不是来自导入模块的相同拼写命令?

# Task: Show SAD, sleep 1 sec, show HAPPY
# Problem: HAPPY takes 17 minutes to appear
from microbit import *
from time import *
display.show(Image.SAD)
sleep(1000) # uses time.sleep(units=sec) so 1,000 sec
display.show(Image.HAPPY)

使用 from ... import ... as 表示法。

from microbit import sleep as microbit_sleep
from time import sleep as normal_sleep

microbit_sleep(1000) # sleeps for one second
normal_sleep(1000) # sleeps for much longer

或者,如果您需要这两个模块中的所有内容,只需执行常规 import

import microbit
import time

microbit.sleep(1000)
time.sleep(1)

from ... import * 通常被认为是糟糕的 Python 风格,正是由于您在此处发现的原因。对于非常快速的脚本来说没问题,但随着项目变大并依赖更多模块,最好避免。