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