1.effective python 第一章

p4

PEP8编码风格

1.类方法:通常情况下,类方法的使用通过@classmethod装饰器来声明。

```python

class ClassA(object):

    @classmethod

    def func_a(cls):

        print(type(cls), cls)

if __name__ == '__main__':

    ClassA.func_a()

    ca = ClassA()

    ca.func_a()

```

运行结果:

2.检测长度:不要通过检查长度的方法判断somelist是否为空,应该采用 if not somelist 空值会自动判断为False,非空则是True.

3.受保护的实例属性,应以单个下划线开头;私有的实例属性,应以两个下划线开头;


p8

%r 和 %s 的区别

```python

text ="I am %d years old." %22

print(I said: %s." % text )

print(I said: %r." % text)

```

运行结果:

I said: I am22 years old.. 

I said:'I am 22 years old.'.  // %r 给字符串加了单引号

另外,%r打印时能够重现它所代表的对象

```python

import datetime 

d = datetime.date.today() 

print(%s" % d)

print(%r" % d)

```

运行结果:

2018-10-31

datetime.date(2018,10,31)    //%r打印时能够重现它所代表的对象


p20

尽量用enumerate取代range

enumerate 函数在遍历迭代器时获知每个元素的索引。

enumerate 的参数:

第一个参数是遍历的对象,第二个参数是开始计数时的初始值(默认为0)。

举例:

```javascript

flavor_list = ['skating','mygirlfriend','boastduck']

for i,favor in enumerate(favor_list,1):

    print('%d: %s'%(i,flavor))

```

result:

1: vanilla

2: chocolate

3: pecan

4: strawberry


你可能感兴趣的:(1.effective python 第一章)