有没有人能解答一下
![]() |
1
Hopetree 296 天前 ♥ 1
```
print(False==None) print(False==0) print(0==None) print(None==None) False True False True ``` |
2
alvin666 296 天前 via Android ♥ 3
false 是一个布尔型的变量,在内存中有相应的空间且有存储变量内容,none 意思是空,内存中没有存储(但是有相应的空间)
|
3
annielong 296 天前
一个是布尔一个是空,肯定是不一样的,甚至空的字符串和 none 都不是一样的
|
4
SuperMild 296 天前 ♥ 1
尽量避免不同类型之间直接比较,特别是动态类型或弱类型语言,往往出现奇怪现象,与其在这上面浪费脑力(同时也给看代码的人添麻烦),还不如采用最佳实践。
|
![]() |
5
purebluesong 296 天前
楼主之前是写弱类型语言的吧
|
6
lolizeppelin 296 天前 via Android
flase 是 0
none 是 null |
![]() |
7
clino 296 天前 via Android
print(False==bool(None))
这样就能达到你的目的 |
8
huahuajun9527 296 天前 ♥ 1
False == None
相当于 False.__eq__(None) ``` >>> False.__eq__(None) NotImplemented >>> r = False.__eq__(None) >>> type(r) <class 'NotImplementedType'> ``` 而 NotImplemented 则参考下面链接的文章 参考: https://stackoverflow.com/questions/3588776/how-is-eq-handled-in-python-and-in-what-order https://stackoverflow.com/questions/878943/why-return-notimplemented-instead-of-raising-notimplementederror |
![]() |
9
enenaaa 296 天前
python 虽然是脚本,但是强类型语言
|
![]() |
10
CSM 296 天前 via Android
因为他们类型不同,不相等很合理。
我甚至觉得应该直接 raise 一个 TypeError 才合理 |
11
vipfts 296 天前
print(type(False))
print(type(None)) >>>>>>>>>>>> <class 'bool'> <class 'NoneType'> |
12
SimbaPeng 296 天前 via Android ♥ 1
Python 不同数据类型之间比较永远不相等,文档里都有写的
|
13
SimbaPeng 296 天前 via Android
出了 number 这个大类下面的数据类型之间比较会进行数学上的比较之外
|
15
SimbaPeng 296 天前 via Android
另外判断是否为 False 或 None 的时候请用 is
|
![]() |
16
whx20202 296 天前
java 里面 false 和 null 也不一样啊 ,虽然基本类型没法直接比
|
![]() |
17
secondwtq 296 天前
吃着屎说 真香
|
18
lmqdlr 296 天前 via Android
Python 是动态类型的强类型啊,跟 js 那种坑货不一样
|
19
ltoddy 296 天前
== 比较的时候,先调用__eq__()方法,然后如果没有的话,会再调用__hash__()方法,所以才会看到 False==0 返回 True 的结果。
|
20
Arnie97 295 天前 via Android
建议用 is 和 is not 来和 None 比较
|
![]() |
21
binux 295 天前
就是这么规定的,这么吧。
|
22
markx 295 天前
因为是强类型语言。
|
23
mingyun 295 天前 ♥ 1
日了狗了
>>> a='wtf' >>> b='wtf' >>> a is b True >>> c='wtf!' >>> d='wtf!' >>> c is d False |
![]() |
25
jy02201949 295 天前
我不明白你们一整天用关公战秦琼有什么实战的意义
|
![]() |
27
jasonyang9 295 天前
一个小坑而已,多踩踩就好了
|
![]() |
29
aaronzjw 295 天前
pyhton 的小坑
if i and i < 0: do something |
![]() |
30
ycz0926 295 天前
类型不同,怎么比较呢?
(。。其实觉得 python 这点有点丑陋) |
![]() |
31
aaronzjw 295 天前
发错了,抱歉。有时候想要判断变量是否为 none 和变量为 0,这样会坑。。
|