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()
```
运行结果:
<class 'type'> <class '__main__.ClassA'>
<class 'type'> <class '__main__.ClassA'>
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