Как определить функцию, которая принимает только строку - PullRequest
1 голос
/ 19 марта 2020

Здравствуйте, я новичок ie в python, и я хотел знать, могу ли я создать функцию, которая принимает только определенные типы значений, в данном случае строку, иначе ошибка

 parameter that needs to be string
           |
           v
def isfloat(a):
       if a.count('.') > 1:
        return False
    for c in a:
        if c.isnumeric() or c == '.':
            v = True
        else:
            return False
    return v

Ответы [ 2 ]

0 голосов
/ 19 марта 2020

Вы можете заключить свой код в оператор if, такой как следующий.

def enumerico(a):
    if (isinstance(a, str)):
        <your code>
    else:
        <throw exception or exit function>
0 голосов
/ 19 марта 2020

В Python 3.5+ вы можете использовать , набрав , чтобы аннотировать вашу функцию:

def enumerico(a: str):
    ...

Но аннотация типов не проверяет типы фактически!

Так , лучше выполнить надежную проверку типов с помощью оператора assert :

def enumerico(a):
    assert isinstance(a, str), 'Strings only!'
    ...

С помощью assert ваша функция повысит AssertationError, если a не является строкой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...