Python类型迷惑:None与数字比较;格式化字符串与unicode

        近期发现两个Python类型十分令人迷惑的问题,也是很容易出现BUG的地方。


1、

None>0

None<0

None==0

这三个bool变量值分别为False, True, False,而不引起异常。



2、

s = '%s %s %s' % (1, 2, '我是谁')

s的类型是<type 'str'>


稍微改一下——

us = u'我是谁'

s = '%s %s %s' % (1, 2, us )

s的类型变成了<type 'unicode'>

十分让人费解,为什么两种同样的写法结果连类型都不一样!


这两个问题目前是我对Python语法最不满意的地方,不满意的程度超过了定义函数时,使用可变类型作为默认参数引发的问题。


你可能感兴趣的:(character)