mcl*_*fee 11 python min nonetype
我注意到虽然'max'函数在None类型上表现良好:
In [1]: max(None, 1)
Out[1]: 1
Run Code Online (Sandbox Code Playgroud)
'min'函数不返回任何内容:
In [2]: min(None, 1)
In [3]:
Run Code Online (Sandbox Code Playgroud)
也许是因为min(None,1)没有定义?那么为什么在最大的情况下,它返回数字?没有人像'无限'一样对待?
Eri*_*got 10
正如jamylak所写,None根本不是由Python shell打印的.
这很方便,因为所有函数都返回一些东西:当没有指定值时,它们返回None:
>>> def f():
... print "Hello"
...
>>> f()
Hello
>>> print f() # f() returns None!
Hello
None
Run Code Online (Sandbox Code Playgroud)
这就是Python shell不打印返回的 None值的原因.print None但是,它有所不同,因为它明确要求Python打印该None值.
至于比较,None是不被认为是负无穷.
Python 2 的一般规则是,无法以任何有意义的方式进行比较的对象在比较时不会引发异常,而是返回一些任意结果.在CPython的情况下,任意规则如下:
除数字外的不同类型的对象按其类型名称排序; 不支持正确比较的相同类型的对象按其地址排序.
Python 3引发了一个异常,用于无意义的比较,比如1 > None通过比较完成max(1, None).
如果你确实需要-infinity,Python会提供float('-inf').
它确实返回了一些内容,python shell只是不打印 None
>>> min(None, 1)
>>> print min(None, 1)
None
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9660 次 |
| 最近记录: |