tedpetrelli 发表于 2022-4-9 14:06:59

为什么1 == int反馈结果为False

请问==的两边可以是BIF内置函数但又不带括号吗?
如果可以,为什么输入1 == int时反馈是False?此时右边的int是不是不被判定为BIF函数,而只是一个简单的英文字符int?
如果1 == int中右边的int被定义为简单的英文字符,那为什么int == ‘int’又会被判定为False呢?
新人小白刚做到第五课课后作业,勿喷,谢谢。

傻眼貓咪 发表于 2022-4-9 14:26:45

type(1) == int

lizan27 发表于 2022-4-9 14:53:58

回答第1个问题,== 两侧,可以是BIF,可以不带括号,带括号也可以诶,结果 都为True;

tedpetrelli 发表于 2022-4-9 16:17:29

傻眼貓咪 发表于 2022-4-9 14:26


嗯嗯,这个我知道,结果为True,说明数字1是整数,但如果是1 == int为什么被判定是False呢?此时==右边的int是被当作了什么呢?

wp231957 发表于 2022-4-9 16:27:56

tedpetrelli 发表于 2022-4-9 16:17
嗯嗯,这个我知道,结果为True,说明数字1是整数,但如果是1 == int为什么被判定是False呢?此时==右边的i ...

一个是数值,一个是变量类型怎么会相等

wp231957 发表于 2022-4-9 16:30:20

这个狠好玩,假设int==1   那同理可证2,3,4,5==int进而推出1==2==3…………

傻眼貓咪 发表于 2022-4-9 16:30:41

本帖最后由 傻眼貓咪 于 2022-4-9 16:33 编辑

tedpetrelli 发表于 2022-4-9 16:17
嗯嗯,这个我知道,结果为True,说明数字1是整数,但如果是1 == int为什么被判定是False呢?此时==右边的i ...

1 是对象本身,int 是类,比如:(小鸟属动物类) 和 (小鸟 == 动物) 不一样意思,你可以看看下面例子,你就明白了:class MyClass:
    pass
k = MyClass()
print(k == MyClass)
print(type(k) == MyClass)False
True
如果你说小鸟 == 动物这句话成立,那么乌龟 == 小鸟也应该成立,因为乌龟 也属动物类。




tedpetrelli 发表于 2022-4-9 21:18:05

wp231957 发表于 2022-4-9 16:30
这个狠好玩,假设int==1   那同理可证2,3,4,5==int进而推出1==2==3…………

哦哦,这个例子我一下子就明白了,非常感谢

tedpetrelli 发表于 2022-4-9 21:18:46

傻眼貓咪 发表于 2022-4-9 16:30
1 是对象本身,int 是类,比如:(小鸟属动物类) 和 (小鸟 == 动物) 不一样意思,你可以看看下面例子, ...

明白了,虽然没看懂上面的代码,但是小鸟乌龟的例子我就懂了,谢谢~
页: [1]
查看完整版本: 为什么1 == int反馈结果为False