我只是想了解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()
答案 0 :(得分:2)
int-数字类型
int()-一种方法,可从任何数字或字符串返回整数对象
两者都不是序列/集合,因此它们没有长度,因此您不能在它们上使用len()。
检查变量是否为int的更好方法是:
def function(define):
if isinstance(define, int):
return 'sorry'
else:
return len(define)
print(function(10))
答案 1 :(得分:1)
要回答您的问题,从技术上讲int
是一类,但您也可以将其视为其他人指出的数据类型。由于它是the documentation,int()
将为__call__
类调用int
方法。出于这个问题的考虑,您可以将其视为使用整数的字符串表示形式并返回int的构造函数。
为清楚起见,这是Python REPL中的示例。
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
答案 2 :(得分:0)
int用于执行确定变量类型的操作(如您在示例中所做的那样)。 int()用于将非int变量转换为int(即“ 45”变为45)。我不太确定您对本示例的理解。一切似乎都正常运行,然后您就粘贴了错误而没有任何解释。