为什么这个micropython功能不起作用?
Why doesn't this micropython function work?
我在 micropython 中编写了一个函数,它试图检索 uname 信息并删除我不想要的东西,然后 return 一个值:
import os
def get_uname():
my_uname = os.uname()[3]
my_uname = my_uname.replace("(GNU 9.3.0 MinSizeRel)", "")
my_uname = my_uname.replace(" on ", "-")
my_uname = my_uname.replace(" ", "")
return my_uname
每次我尝试将其作为模块导入时,我都会收到一条错误消息:
import sw-ver
Traceback (most recent call last):
File "<stdin>", line 1
SyntaxError: invalid syntax
但是如果我直接把函数复制粘贴到repl里面,就成功了,没有报错:
>>> import os
>>> def get_uname():
... my_uname = os.uname()[3]
... my_uname = my_uname.replace("(GNU 9.3.0 MinSizeRel)", "")
... my_uname = my_uname.replace(" on ", "-")
... my_uname = my_uname.replace(" ", "")
... return my_uname
...
...
...
>>> get_uname()
'v1.14-2021-02-05'
>>>
我已经尝试了所有我能想到的方法,我重命名了文件以防万一导致问题。有人对如何解决此问题有建议吗?
谢谢!
如果您将函数放在文件 sw-ver.py
中,您将难以使用 import sw-ver
导入它,因为 -
用于算术等,即使在这种情况下也是如此.如果您无法重命名文件,请参阅 here, but the simplest answer is to follow the style guide 并仅对模块使用小写字母,或者至少使用 _
而不是 -
.
我在 micropython 中编写了一个函数,它试图检索 uname 信息并删除我不想要的东西,然后 return 一个值:
import os
def get_uname():
my_uname = os.uname()[3]
my_uname = my_uname.replace("(GNU 9.3.0 MinSizeRel)", "")
my_uname = my_uname.replace(" on ", "-")
my_uname = my_uname.replace(" ", "")
return my_uname
每次我尝试将其作为模块导入时,我都会收到一条错误消息:
import sw-ver
Traceback (most recent call last):
File "<stdin>", line 1
SyntaxError: invalid syntax
但是如果我直接把函数复制粘贴到repl里面,就成功了,没有报错:
>>> import os
>>> def get_uname():
... my_uname = os.uname()[3]
... my_uname = my_uname.replace("(GNU 9.3.0 MinSizeRel)", "")
... my_uname = my_uname.replace(" on ", "-")
... my_uname = my_uname.replace(" ", "")
... return my_uname
...
...
...
>>> get_uname()
'v1.14-2021-02-05'
>>>
我已经尝试了所有我能想到的方法,我重命名了文件以防万一导致问题。有人对如何解决此问题有建议吗?
谢谢!
如果您将函数放在文件 sw-ver.py
中,您将难以使用 import sw-ver
导入它,因为 -
用于算术等,即使在这种情况下也是如此.如果您无法重命名文件,请参阅 here, but the simplest answer is to follow the style guide 并仅对模块使用小写字母,或者至少使用 _
而不是 -
.