В чем разница между int и int () в Python - PullRequest
0 голосов
/ 03 января 2019

Я просто пытаюсь понять, в чем разница между int и int ().Вот мой код:

def function(define):
    if type(define) == int:
        return 'sorry'
    else:
        return len(define)

print(function(10))

и он возвращается: извините

File "exercise2.py", line 14, in <module>
    print(function(10))
  File "exercise2.py", line 12, in function
    return len(define)
TypeError: object of type 'int' has no len()

Ответы [ 3 ]

0 голосов
/ 03 января 2019

int используется для таких вещей, как определение типа переменной (как вы сделали в своем примере).int () используется для преобразования не-int-переменной в int (то есть «45» становится 45).Я не совсем уверен, к чему ты клонишь своим примером.Кажется, все работает правильно, и вы просто вставили ошибки без объяснения причин.

0 голосов
/ 03 января 2019

Чтобы ответить на ваш вопрос, технически int - это класс, но вы также можете думать о нем как о типе данных, как отметили другие.Поскольку это вызываемый объект, int() будет вызывать метод __call__ для класса int.Ради этого вопроса вы можете думать о нем как о конструкторе, который принимает строковое представление целого числа и возвращает целое число.

Вот пример в REPL для Python для ясности.

Python 3.7.0 (default, Sep 22 2018, 18:29:00)
[Clang 9.1.0 (clang-902.0.39.2)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> int
<class 'int'>
>>> int('1')
1
>>> int('a')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: 'a'
>>> int.__call__('1')
1
>>> isinstance(int('1'), int)
True
>>> type(1) is int
True
0 голосов
/ 03 января 2019

int - числовой тип

int () - метод , который возвращает целочисленный объект из любого числа или строки

оба не являются последовательностями / коллекциями , поэтому они не имеют длины, поэтому вы не можете использовать len () для них.

Лучший способ проверить, является ли переменная целым:

def function(define):
    if isinstance(define, int):
        return 'sorry'
    else:
        return len(define)

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