Effective-Python
来源:互联网 发布:服务器安装mysql数据库 编辑:程序博客网 时间:2024/06/16 06:30
编写pythonic代码
1.python 变量互换可以直接用不用中间变量 a, b = b , a
2,一般写str.format()
3.python 的三元操作符是 if else 等价于 ? :
4.没有 switch ..case分支语句
5.利用 assert 断言语句来发现问题 但是用断言有代价 一般本身异常能够处理就不要再使用断言
6.建议少用 type() 因为当某个类(没有实现相关方法或实现了只是一个异常)继承 int 类时用类型检查会返回false 可以用isinstance(object, classinfo)
7.有节制的使用from...import 将模块加载到sys.modules集中
8.i+=1 不等于++i
9.join() 方法效率高于 + 操作符
10.建议用 format 形式 格式种类多 而且是字典形式
11.test1 = [1,['a',1,2],[2,4],6]
def change(list):
def change2(list):
change(test1)
#change(test1)
print(test1,id(test1)) #切记python中传参即不是引用也不是传值 是传对象或者是传对象的引用
12.切记默认参数潜在的问题
如: def change( name1, name2 = []) name2 =[]会记住多次调用的值
13.解释器直接输入默认用的是 面向repr() 而 print() 调用的是 str()
14.判断是不是字符串用 isinstance(s,basestring)
15.注意 split() 与 split('') 的不同
16. __init__() 只是初始化方法不是构造器它的工作是在类的对象创建好之后进行变量的初始化.__new__()方法才会真正创建实例 ,是类的构造方法
17.多继承树查找 有俩种第一种是自底向上深度优先 还一种是 自底向上 从左至右 找到为止
18.记得类通过点语法访问属性与实例访问时__get__()参数的不同而结果不同
19.注意 __getattr__() 与注意 __getattribute__()实例属性的获取和拦截方法(非类属性)后者是无条件调用,而前者是只有在后者引发异常的情况下才会被调用.__getattribute__() 可以理解为设置属性 __getattr__() 可以理解为异常property只是对访问属性的方法做了包装,可以真直接用点语法,__get__()可以理解为属性描述函数(descriptor)但注意的是使用类访问不存在的变量是,不会经过__getattr__()函数.而descriptor(即实现了__get__()的类)不存在此问题,只是把instance标识为none而已.
20.对象协议就是一些内置的相关方法形如:__str__()
阅读全文
0 0
- Effective-Python
- effective python
- Python Effective Programming - Intro
- Effective Python 中文版
- Effective Python 第一章回顾
- python book recommend: effective python
- 《Effective python》第一章节读后感
- Effective Python 第二章(一)
- effective
- 启动我自己的<Effective Python>系列文章
- 《Effective Python 编写高质量Python代码的59个有效方法》读书笔记
- Effective Python:编写高质量Python代码的59个有效方法的学习笔记
- effective与more effective
- Effective Python学习笔记(一) ——辅助类的使用
- Effective TensorFlow Chapter 9: TensorFlow模型原型的设计和利用python ops的高级可视化
- Effective C++
- Effective C#
- Effective C#
- bootstrap中如何使input中的小图标获得点击事件
- c文件操作之fgets,fputs
- 21st-Oct 时对时错的方向指令string数组
- 计蒜客 Bridge Automation(ACM ICPC 2017 Warmup Contest 9)
- 【MySQL】常用命令
- Effective-Python
- 重写java课程学习二:编写程序
- main函数执行之前都干啥了----C/C++运行时库剖析
- lingo标准模型与编程(附习题)
- 第五天 Javascript面向对象和一些常用对象
- python 参考手册
- struts-config.xml配置文件详解
- 安卓的LinearLayout实现按钮的点击效果
- leetcode 130 Submission Details