![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python高级编程
文章平均质量分 93
书山压力大EEE
这个作者很懒,什么都没留下…
展开
-
7.元类编程
1. property动态属性>>> from datetime import date, datetime >>> class User: >>> def __init__(self, name, birthday): >>> self.name = name >>>原创 2018-06-03 09:54:26 · 129 阅读 · 0 评论 -
5.深入set和dict
1. dict的abc继承关系dict继承自MutableMapping>>> from collections.abc import Mapping, MutableMapping >>> print(isinstance(dict, MutableMapping)) # 用isinstance判断 得是实例 False >>> a ...原创 2018-06-02 14:36:13 · 192 阅读 · 0 评论 -
4.自定义序列类
1. 序列类的分类2.序列的+、+=、extend方法+与+=的用法区别代码:# 常用用法 >>> a = [1, 2] >>> c = a + [3, 4] >>> print(c) [1, 2, 3, 4] >>> a += [3, 4] >>> print(a) [1, 2, 3, 4] #原创 2018-06-01 17:29:19 · 647 阅读 · 0 评论 -
3.深入类和对象
1. 鸭子类型和多态1.1 鸭子类型: 当看到一只鸟走起来像鸭子,游泳起来像鸭子,叫起来像鸭子,那么这只鸟就可以被称为鸭子。 鸭子类型是python中实现多态的简单方式。例子:>>> class Cat(object): >>> def say(self): >>> print('i am a cat') >&...原创 2018-05-31 17:39:09 · 141 阅读 · 0 评论 -
13.collections模块的使用
第一章: namedtuple的功能详解为了便于理解nametuple,先来讲讲tuple的一些特性1. 可拆包 mytuple1 = ('cannon', 26, 178) name1, age, height = mytuple1 name2, *other = mytuple1 print(name1, age, height) print(name2, other) # other会...原创 2018-06-13 21:30:00 · 204 阅读 · 0 评论 -
time和datetime的常用方法
转自http://www.cnblogs.com/lxmhhy/p/6030730.htmlpython time和datetime的常用转换处理一、time1、获取当前时间和时区>>> now = time.time() # 当前时间 float类型 >>> time.strftime("%Y-%m-%d %H:%M:%S") #当前时间 str '2...转载 2018-06-21 14:47:13 · 3281 阅读 · 0 评论 -
10.多线程与多进程编程
1. 全局解释器锁 GIL1. gil 全称 global interpreter lock 2. python 中一个线程 对应 c语言中一个线程 3. gil使得同一时刻只有一个线程在cpu上执行字节码,无法将多个线程映射到多个cpu上 4. gil会根据执行的字节码行数以及时间片 释放gil 5. gil在遇到io操作的时候会主动释放import threading total = 0 ...原创 2018-06-06 18:21:44 · 5160 阅读 · 0 评论 -
2.魔法函数
1. 魔法函数:__开头 __结尾的python内置函数举例:>>> class Company(object): >>> def __init__(self, employee_list): >>> self.employee = employee_list >>> def ___getit...原创 2018-05-30 15:31:36 · 460 阅读 · 0 评论 -
1. 一切皆对象
1. 一切皆对象函数, 类 都是对象特性:赋值给一个变量可以添加到集合对象中可以作为参数传递给函数可以当作函数的返回值代码举例:函数:>>> def ask(name='cannon1'): >>> print(name) >>> my_func = ask >>> my_func('shenjianeng') s...原创 2018-05-30 15:30:07 · 166 阅读 · 0 评论 -
12.asyncio并发编程
1. 事件循环asyncio是python3.4以后引进的用于解决异步io编程的一整套解决方案tornado、gevent、twisted(scrapy、django channels)都使用了asyncio讲解asyncio的简单使用:import asyncio import time async def get_html(url): print('start get url') ...原创 2018-06-13 10:58:17 · 2716 阅读 · 2 评论 -
11.协程与异步IO
1. 并发、并行、同步、异步、阻塞、非阻塞并发和并行:并发: 一个时间段内,有几个程序在同一个cpu上运行,但是任意时刻只有一个程序在cpu上运行并行: 任意时刻点上, 有多个程序同时运行在多个cpu上实际举例说明:问题 - 喝茶 情况: 开水没有,水壶要洗,茶壶茶杯要洗;火生类, 茶叶也有了。怎么办? 所需时间: 洗水壶: 3 灌凉水: 1 洗茶壶: 3 ...原创 2018-06-11 20:07:40 · 2508 阅读 · 1 评论 -
9. socket编程
1. HTTP、Socket、TCP网络模型和协议位置:1. socket 不属于任何协议,可以看作操作系统给的api。 通过socket我们可以利用TCP和UDP协议。比如QQ就是利用socket自己构建一套应用层协议,来实现聊天功能的。2. http实现不了双向, 比如网站的聊天功能利用websocket协议, http实现不了这样的功能。2. 利用socket 实现client和server...原创 2018-06-04 14:45:00 · 155 阅读 · 0 评论 -
8.迭代器和生成器
1. python的迭代协议什么是迭代协议?凡是 能用 for循环的,背后都是迭代协议。 可迭代类型内置魔法方法__iter__迭代器是什么?迭代器是访问集合内元素的一种方式, 一般用来遍历数据迭代器和以下标访问方式不一样,迭代器是不能返回的,迭代器提供了一种惰性的访问方式list是可迭代的,但不是一个迭代器# Iterable 可迭代 中有__iter__ # 而Iterator迭代器 继...原创 2018-06-03 21:24:58 · 126 阅读 · 0 评论 -
6.对象引用、可变性和垃圾回收
1. python中的变量是什么?python和java的变量本质不一样, python的变量实质上是一个指针 类似便利贴便利贴过程:a = 1 # 1.先在内存中生成好了1 # 2.把a贴在1上面 代码举例:>>> a = [1, 2, 3] >>> b = a >>> print(id(a), id(b)) 4329385544 4329...原创 2018-06-02 15:55:32 · 116 阅读 · 0 评论