Python培训
美国上市Python培训机构

400-111-8989

热门课程

Python入门了,想进阶要学哪些知识?

  • 发布:Python培训
  • 来源:问答
  • 时间:2017-09-08 10:42

语法和用法

基本功:

python编码

可迭代对象:str, list, tuple, set, dict, iterator, generator

可变与不可变对象:可变list, dict, set 不可变 int([-5,256]),str

变量赋值的机制(函数调用时参数是传值还是传引用)

for else: 循环没有遇到任何break时执行 else 句

https://eastlakeside.gitbooks.io/interpy-zh/content/for_else/else_clause.html

tryelse 语句

https://eastlakeside.gitbooks.io/interpy-zh/content/exception/try_else_clause.html

max = a if a > b else b

max = [a, b][a<b]

同时遍历索引和元素enumerate

*args, **kwargs

深拷贝,浅拷贝

各种推导式(comprehensions)(又称解析式)

列表(list)推导式,字典(dict)推导式,集合(set)推导式

__future__模块 print_function, unicode_literals, division

上下文管理器 with

变量作用域(LEGB, globals, locals, vars)

闭包和装饰器

Python中一切皆对象。装饰器虽然语法比较复杂,但是,在一些场景下,也确实比较有用。包括:

注入参数(提供默认参数,生成参数)

记录函数行为(日志、缓存、计时什么的)

预处理/后处理(配置上下文什么的)

修改调用时的上下文(线程异步或者并行,类方法)

装饰器缺点:

1. Python >= 2.4 可用

2. 会使函数调用变慢

3. 一般来说不能去装饰(有hack方法,但没人用)

4. 它包裹函数,可能debug变得困难

类相关的

魔术方法,描述符,元类

classmethod, staticmethod, property

描述符:一个类可以委托另一个类来管理其特性

类属性被定义并且有 __get__ 和__set__ 方法时,__dict__ 会被劫持。

如果一个对象同时定义了 __get__() 和 __set__(),它叫做资料描述器(data descriptor)。仅定义了 __get__() 的描述器叫非资料描述器(常用于方法,当然其他用途也是可以的)

资料描述器和非资料描述器的区别在于:相对于实例的字典的优先级。如果实例字典中有与描述器同名的属性,如果描述器是资料描述器,优先使用资料描述器,如果是非资料描述器,优先使用字典中的属性。

http://pyzh.readthedocs.io/en/latest/Descriptor-HOW-TO-Guide.html

元类:http://blog.jobbole.com/21351/

__getattr__ vs __getattribute__

__slots__,属性查找机制(实例à父类)mro

包相关的

绝对引入与相对引入

循环依赖

生成器和协程

协程存在的意义:对于多线程应用,CPU通过切片的方式来切换线程间的执行,线程切换时需要耗时(保存状态,下次继续)。协程,则只使用一个线程,在一个线程中规定某个代码块执行顺序。

标准库

logging

itertools (ifilter, izip, imap, permutations,combinations, product, groupby, chain, isslice, tee)

functools (>=2.5 update_wrapper, wraps,partial)

operator (add, sub, mul, div, mod,itemgetter, attrgetter, total_ordering)

contextlib

re (match, search, findall, sub)

unittest

threading

multiprocessing

算法与数据结构

str, int, bool, list, tuple, dict, set

collections (namedtuple, Counter, OrderedDict, defaultdict(vs setdefault),deque)

heapq (nlargest, nsmallest)

bisect (insort, insort_left, insort_right)

常见数据结构操作的时间复杂度表

异步和协程

gevent (greenlet)

Celery

代码热更新

工具类

virtualenv, virtualenvwrapper, pyenv, autoenv

ipython

pdb: python -m pdb my_script.py

timeit

python -m timeit ‘statement’

python -m timeit -s ‘setup’ ‘statement’ 说明:setup的时间不算在里面

profile

python -m cProfile student.py

简易Web Server

#Python 2

python -m SimpleHTTPServer

#Python 3

python -m http.server

陷阱

函数默认参数

defappend_to(List=[]):

List.append(3)

print List

闭包变量绑定

try except

try:

file = open('test.json')

data = json.load(f)

except IOError, ValueError:

print('An Erroroccurred. {}'.format(e.args[-1]))

一句谚语所说的那样 “knowing enough to be dangerous”(译者注:意思是自以为已经了解足够了,可以做某事了,但其实不是)

免费预约企业总监级讲师试听课

怕钱不够?就业挣钱后再付学费!    怕学不会?0基础入学,达内定制课程!     担心就业?近12万家雇主企业,推荐名企就业!

上一篇:Python 语言学习应该如何入门?
下一篇:参加Python培训后能在哪些领域参加工作?

想学Python有没有必要报培训班?

Python这么简单还用参加python培训班学吗?

python培训费用是多少?学python课程价格?

零基础学Python编程开发难度大吗?从哪学起?

选择城市和中心
贵州省

广西省

海南省