Submit Search
Upload
Python advanced programming
•
Download as PPTX, PDF
•
0 likes
•
77 views
智
智辉 武
Follow
python programming
Read less
Read more
Technology
Report
Share
Report
Share
1 of 25
Download now
Recommended
那些函數語言Tutorial沒有教我的事
那些函數語言Tutorial沒有教我的事
YC Ling
Jaskell Core Parsec
Jaskell Core Parsec
March Liu
Geo science cafe 如何找到一份满意的工作
Geo science cafe 如何找到一份满意的工作
kewuc
Duck Typing and Multiple Inheritance
Duck Typing and Multiple Inheritance
Sway Wang
Open source的devops工具箱 公開版@coscup2016
Open source的devops工具箱 公開版@coscup2016
Kirk Chen
Javascript 培训第二节 基础上
Javascript 培训第二节 基础上
liziqi7
使用Dsl改善软件设计
使用Dsl改善软件设计
mingjin
Java DSL与动态代码生成技术的应用 (上集:DSL部分)
Java DSL与动态代码生成技术的应用 (上集:DSL部分)
悦 温
Recommended
那些函數語言Tutorial沒有教我的事
那些函數語言Tutorial沒有教我的事
YC Ling
Jaskell Core Parsec
Jaskell Core Parsec
March Liu
Geo science cafe 如何找到一份满意的工作
Geo science cafe 如何找到一份满意的工作
kewuc
Duck Typing and Multiple Inheritance
Duck Typing and Multiple Inheritance
Sway Wang
Open source的devops工具箱 公開版@coscup2016
Open source的devops工具箱 公開版@coscup2016
Kirk Chen
Javascript 培训第二节 基础上
Javascript 培训第二节 基础上
liziqi7
使用Dsl改善软件设计
使用Dsl改善软件设计
mingjin
Java DSL与动态代码生成技术的应用 (上集:DSL部分)
Java DSL与动态代码生成技术的应用 (上集:DSL部分)
悦 温
Erlang and HTML5
Erlang and HTML5
Witeman Zheng
构建可维护的Javascript 小米网
构建可维护的Javascript 小米网
yang alex
Test
Test
bluewind3541
成为一个合格的工程师
成为一个合格的工程师
huang chengkai
软件工程 第七章
软件工程 第七章
浒 刘
RSpec 讓你愛上寫測試
RSpec 讓你愛上寫測試
Wen-Tien Chang
第1章 概论
第1章 概论
tjpucompiler
Excel VBA
Excel VBA
Dick Lam
七天基于风险测试—Chinatest
七天基于风险测试—Chinatest
drewz lin
程式設計教與學
程式設計教與學
忠憲 李
Compiler for Dummy 一點都不深入的了解 Compiler, Interpreter 和 VM
Compiler for Dummy 一點都不深入的了解 Compiler, Interpreter 和 VM
Li Hsuan Hung
Database And User Experience for Web Apps
Database And User Experience for Web Apps
Dahui Feng
Jasmine
Jasmine
tb-vertical-guide
RSpec & TDD Tutorial
RSpec & TDD Tutorial
Wen-Tien Chang
More Related Content
Similar to Python advanced programming
Erlang and HTML5
Erlang and HTML5
Witeman Zheng
构建可维护的Javascript 小米网
构建可维护的Javascript 小米网
yang alex
Test
Test
bluewind3541
成为一个合格的工程师
成为一个合格的工程师
huang chengkai
软件工程 第七章
软件工程 第七章
浒 刘
RSpec 讓你愛上寫測試
RSpec 讓你愛上寫測試
Wen-Tien Chang
第1章 概论
第1章 概论
tjpucompiler
Excel VBA
Excel VBA
Dick Lam
七天基于风险测试—Chinatest
七天基于风险测试—Chinatest
drewz lin
程式設計教與學
程式設計教與學
忠憲 李
Compiler for Dummy 一點都不深入的了解 Compiler, Interpreter 和 VM
Compiler for Dummy 一點都不深入的了解 Compiler, Interpreter 和 VM
Li Hsuan Hung
Database And User Experience for Web Apps
Database And User Experience for Web Apps
Dahui Feng
Jasmine
Jasmine
tb-vertical-guide
RSpec & TDD Tutorial
RSpec & TDD Tutorial
Wen-Tien Chang
Similar to Python advanced programming
(14)
Erlang and HTML5
Erlang and HTML5
构建可维护的Javascript 小米网
构建可维护的Javascript 小米网
Test
Test
成为一个合格的工程师
成为一个合格的工程师
软件工程 第七章
软件工程 第七章
RSpec 讓你愛上寫測試
RSpec 讓你愛上寫測試
第1章 概论
第1章 概论
Excel VBA
Excel VBA
七天基于风险测试—Chinatest
七天基于风险测试—Chinatest
程式設計教與學
程式設計教與學
Compiler for Dummy 一點都不深入的了解 Compiler, Interpreter 和 VM
Compiler for Dummy 一點都不深入的了解 Compiler, Interpreter 和 VM
Database And User Experience for Web Apps
Database And User Experience for Web Apps
Jasmine
Jasmine
RSpec & TDD Tutorial
RSpec & TDD Tutorial
Python advanced programming
1.
PYTHON提高课 一切都是对象
2.
WARM UP • 为什么同样的数据类型,同样 的表达式,结果不一样? •
如果用“==”比较会出现这种情 况吗? • “is” 和 “==” 有什么区别?
3.
QUICK LOOK • 强制缩进 •
解释性、编译性、互动性 • 一种高级编程语言,通用型编程语言 • 支持多种编程范式,包括面向对象、命令式、函数式和过程式编程 • 完全面向对象的语言,函数、模块、数字、字符串都是对象 • 支持继承、重载、派生、多重继承
4.
几个常用的高级特性 PART ONE • 推导式 •
生成器表达式 • 装饰器 • 上下文管理器 • 反射函数(getattr, setattr)
5.
变量 结果表达式 输入序列 可选条件表达式 {a: a **
2 for a in range(10) if a % 2} 推导式、生成器表达式 {a for a in range(10) if a % 2} (a for a in range(10) if a % 2) 字典dict 集合set 元组tuple生成器generator
6.
装饰器 装饰器函数 伪造签名 替身函数 装饰器函数的返回值是替身函数
7.
上下文管理器 上下文准备部分 用户代码执行点 上下文清理部分
8.
上下文管理器 • 一种AOP(Aspect Oriented
Programming面向切面编程)机制 • 装饰器也是一种AOP机制 • 装饰器是对象级别的(函数也是一种对象) • 上下文管理器是代码块级别的 • 上下文管理器原理待续… 装饰器上下文管理器小结
9.
反射工具函数
10.
PART TWO 魔术方法 • 什么是魔术方法? •
类方法、对象方法 • 以双下划线包围的方法“__xxx__” • 实现了python里面绝大部分的高级特性
11.
上下文管理器实现
12.
13.
构造、初始化与析构 • __new__(cls, [...) •
__new__ 是实例化类的时候被调用的第一个方法. 它的参数是要实例化的类 ,然后是将要传给__init__的所有参数。 __new__ 用得很少,它可以修改实 例。 • __init__(self, [...) • 最常用的初始化函数。(所有变量应该在该方法内申明) • __del__(self) • 对象被垃圾回收的时候调用,del obj 不调用该方法。基本不用。
14.
属性访问控制 • __getattr__(self, name) •
仅对于不存在的属性访问,一种兜底方法。 • __setattr__(self, name, value) • 属性赋值,等价于 o.attr = x • __delattr__(self, name) • 删除属性,等价于 del o.attr • __getattribute__(self, name) • 获取属性(包括存在的属性),等价于 o.attr
15.
属性访问示例
16.
定制化列表 • __len__(self) • __getitem__(self,
key) • __setitem__(self, key, value) • __delitem__(self, key) • __iter__(self) • __reversed__(self) • __contains__(self, item) • __missing__(self, key)
17.
更多的魔术方法… • 操作符重载 • 类型转换 •
类的描述 • 实例、子类判断行为 • Descriptors 对象 • 拷贝 • 序列化
18.
元编程 PART THREE • 什么是类?什么是对象? •
什么是元编程? • 这里要讨论的问题:类的元编程 • python的类的特殊性
19.
• python2: __metaclass__
python3: class Name(metaclass=… • 类也是对象 • class和type • 类的类 • 也是一种AOP手段
20.
21.
开发提示 PART FOUR
22.
23.
• 再三小心使用循环 • 合理使用数据结构 •
优先使用占用空间小的方式 • 按需传参,不要滥传
24.
更多… 开发模式:单例模式、Null对象、观察者模式、
25.
— zwu2@ THANKS ” “
Editor's Notes
题外话:dict.get默认值的行为区别,dict.get不传默认值也会默认None
每个人应该都知道最基本的魔术方法 __init__. 它是我们定义一个对象初始化行为的方式. 然而, 当执行 x = SomeClass(), __init__ 不是第一个被调用的方法. 事实上, 第一个被调用的是一个叫做 __new__ 的方法, 是它构造了这个对象, 然后将构建参数传递给了初始化方法. 在对象生存周期的另一头, 有个 __del__ 方法. 让我们仔细看一下这3个方法。
注意点,实现的时候不小心容易造成死循环
元编程(英语:Metaprogramming),又译超编程,是指某类计算机程序的编写,这类计算机程序编写或者操纵其它程序(或者自身)作为它们的资料,或者在运行时完成部分本应在编译时完成的工作。多数情况下,与手工编写全部代码相比,程序员可以获得更高的工作效率,或者给与程序更大的灵活度去处理新的情形而无需重新编译。 编写元程序的语言称之为元语言。被操纵的程序的语言称之为“目标语言”。一门编程语言同时也是自身的元语言的能力称之为“反射”或者“自反”。
能不放到循环里的语句,操作尽量提升。 善用生成器,少用完全的list。
Download now