Преобразование параметров функции в Python - PullRequest
0 голосов
/ 21 февраля 2020

Чтобы перефразировать мой вопрос ниже:

Какой смысл говорить, что параметр является строкой, когда он не может преобразоваться в строку, когда целое число было введено в качестве ввода?

Я понимаю, что мы можем использовать str () для преобразования целого числа в строку, но это не тот ответ, который я ищу.


После запуска кода, введя gss внутри параметра, я получил 1. Однако, когда я смотрю вверх, тип этого результата, он отображается как NoneType.

Почему это не строка?

gss=1
convert_gss_to_str(gss)
1
type(convert_gss_to_str(gss))
Nonetype

Я запустил приведенные ниже коды, думая, что целое число 1 будет преобразовано в строку ' 1 '.

Однако я получил эту ошибку: Ошибка типа: convert_gss () отсутствует 1 обязательный позиционный аргумент:' gss '

Любое предположение, что я делаю неправильно?

gss = 1

def convert_gss_to_str(gss: str):
    print(gss)

convert_gss_to_str()

Ответы [ 3 ]

1 голос
/ 21 февраля 2020
def convert_gss_to_str(gss: str):
    print(gss)

Эта функция принимает один необязательный параметр gss и ничего не возвращает, поэтому ее тип возврата - Nonetype. Если вы хотите сделать реальное преобразование, вы можете использовать встроенную функцию str(), как это было предложено Савелем.

Преобразование типов на самом деле не нужно для print(), так как оно все равно будет печатать целые числа

1 голос
/ 21 февраля 2020
def convert_gss_to_str(gss: str):
    ...

Это просто тип подсказка .

Для получения дополнительной информации читайте PEP484

Пока эти аннотации доступны во время выполнения с помощью обычного атрибута annotations проверка типов во время выполнения не выполняется. Вместо этого в предложении предполагается наличие отдельной автономной проверки типов, которую пользователи могут добровольно запускать через свой исходный код. По сути, такая проверка типа действует как очень мощный линтер.

0 голосов
/ 21 февраля 2020

Просто используйте встроенную функцию str.

>>> gss = 1
>>> str(gss)
"1"
...