Почему не работает эта функция микропитона?
Я написал функцию на микропитоне, которая пытается получить неименованную информацию и вырезать ненужные мне вещи, а затем вернуть значение:
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'
>>>
Я пробовал все, что мог, я переименовал файл на всякий случай, если это было причиной проблемы. Есть ли у кого-нибудь предложения по устранению этой проблемы?
Благодарность!
1 ответ
Если вы поместили свою функцию в файл
sw-ver.py
, вам будет сложно импортировать его с помощью
import sw-ver
as используется для арифметики и так далее, даже в этом контексте. Если вы не можете переименовать свой файл, см. Здесь , но самый простой ответ - следовать руководству по стилю и использовать только строчные буквы для модулей или, по крайней мере,
_
вместо
-
.