编写地道的python(1)

该系列博文原文出自jeff knupp所著的编写地道的python(writing idiomatic python)一书, 原书版权归原做者全部.
python

关于if语句
函数

  1. 避免直接与True, False或None去比较. 在python中,如下几种状况都会被当作False:
    code

    1. None对象

    2. False内存

    3. 数字类型的0it

    4. 空list或dictio

    5. 0值或者当__len__或__nonzero返回Falseclass

    其余状况都会当作True, 你能够重写e中的两个内置函数来自定义如何才会返回True或者False.变量

    你能够直接这样写 if foo: 而不用这样写 if foo == True:重构

    这样写的好处在于通过将来的重构以后, foo可能变成了一个int类型的值并且永远不会 == True, 直接写 if foo: 就不用再修改原先的函数了.

    这里有个点要注意区分一下,就是==和is的区别, ==意思是值是否相等,它调用的是类内部的_eq, is意思是他们是不是同一个对象,即两个变量是否指向的是同一段内存, 有些地方is表现的像==同样,可是这是不可靠的.

    注意有些状况是必须与None去比较的,好比

    def insert_data(self, position=None):
        if position is None:

    此处因为0也是一个有效值因此不能直接写 if position:

    还有一种状况是若是与None去比较必须使用is或者is not,不要用==. (PEP8规定)

相关文章
相关标签/搜索