![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python
hbnn111
写作是这个时代最好的投资,只有通过输出,向别人讲清楚自己所学,才能让自己更进一步。如果还有幸得到同业的指正,更是收获颇丰。
个人网站:hbnnforever.cn
展开
-
Python延迟加载
Python里面的延迟加载用得非常多,其主要思想是延迟所要引入类的实例化,节省一些初始化所需要的时间和空间。这种思想在Django中应用得也是非常广泛,比如ORM的QuerySet,还有鉴权中间件中的request.user等等,这些都是利用了延迟加载的思想。 本文就是通过例子来分析延迟加载的思想。 实现延迟加载的基本思路是我创建一个类,我们将我们需要实例化的类传给他,...原创 2018-06-29 16:39:20 · 4036 阅读 · 1 评论 -
Python运算符
介绍python里一些运算符的小魔法,及对其进行重载。1、__getattr__,__setattr__,__getattribute__等等 class A(object): age = 43 def __init__(self): print 'A' self.name = 'a' self.age = 23 def __getat...原创 2018-06-29 16:41:50 · 232 阅读 · 0 评论 -
Python字符编码介绍(2和3)
转自我的博客(http://hbnnforever.cn/article/pythonstringdetail.html) 今天读了一下《Python高级编程》里的字符串与Unicode一章,深入研究一下,还真是发现了很多的问题。现在就把比较重要的点记录下来。 如果说Py2和Py3有什么不同,我觉得字符串的处理机制是两者之间比较重要的不同之一,也可以说是Py3做的比较好的优化之处。 ...原创 2018-06-29 16:43:40 · 377 阅读 · 0 评论 -
Python的一些内置特性
介绍下最近遇到过的python的内置特性。(其实有很多,这里只是冰山一角)Python的一些内置特性还事比较有用的,我们可以根据一些特殊需求进行一些重构和自定义。 1、__missing__如果dict的子类定义了该方法,那么当获取不存在的键值时,就会调用该方法。该方法的参数为对应的key。一个简单的例子:class Dict(dict): 4 def __missing__(self,key...原创 2018-06-29 16:46:00 · 226 阅读 · 0 评论 -
Python描述符
定义: 如果一个类,它含有__get__,__set__,__del__中的任何一个,那么都可以说这个类是一个描述符。 对于一个类的属性访问,默认行为是从类的字典中set,get,del属性,查找顺序是a.__dict__['x'], 然后type(a).__dict__['x']。那如果定义了描述符,__set__,__get__,__del__会覆盖这些属性,直接访问描述符中的这些方法。cla...原创 2018-06-29 16:48:23 · 181 阅读 · 0 评论 -
Python中的赋值、copy()、deepcopy()
(本篇文章事我16年写的,从我的网站上copy过来了,嗯,深拷贝)一直想对这部分做个整理,写出个教程,但却没有动手写,今天就着这部分写个完整的教程。说正式内容之前,要说一下Python的内存管理机制。在Python中,变量在第一次赋值时自动声明,在创建---也就是赋值的时候,解释器会根据语法和右侧的操作数来决定新对象的类型。一个对象必须有一个PyObject,它就是一个引用计数器,用来跟踪对象的。...原创 2018-06-29 16:50:37 · 386 阅读 · 0 评论 -
Python面向对象的介绍
(文章事从我自己的网站copy过来的,写了很久了:http://hbnnforever.cn/article/pythonoop.html)面向对象(Object Oriented Programming)编程主要有三大特性:继承、封装、多态。那就从这三个方面来学习一下,也会具体说说Python类的一些特性,如新式类和旧式类,__slots__,super等等。 1、封装封装是最好理解的,它是将内...原创 2018-06-29 16:52:26 · 287 阅读 · 0 评论 -
Python装饰器
1.闭包2.Python装饰器3.类的装饰器一、闭包学习装饰器首先要理解闭包的概念。在Python中,当你引用一个函数A时,函数A又引用了函数B,这个B就称为闭包。在调用A时传递的参数就叫做自由变量。 闭包也是一种组织代码的结构,它同样提高了代码的可重复使用性。def func(name): def inner_func(age): print 'name:', name,...原创 2018-06-29 16:58:16 · 207 阅读 · 0 评论