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