Python面向对象编程之封装、继承与多态

一、封装

    封装从字面上来理解就是包装的意思,专业点就是信息隐藏,是指利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体,数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,只保留一些对外接口使之与外部发生联系。系统的其他对象只能通过包裹在数据外面的已经授权的操作来与这个封装的对象进行交流和交互。也就是说用户是无需知道对象内部的细节,但可以通过该对象对外的提供的接口来访问该对象。

    对于封装而言,一个对象它所封装的是自己的属性和方法,所以它是不需要依赖其他对象就可以完成自己的操作。使用封装有三大好处:

  1. 良好的封装能够减少耦合。

  2. 类内部的结构可以自由修改。

  3. 可以对成员进行更精确的控制。

  4. 隐藏信息,实现细节。

    封装把一个对象的属性私有化,同时提供一些可以被外界访问的属性的方法,如果不想被外界方法,我们大可不必提供方法给外界访问。但是如果一个类没有提供给外界访问的方法,那么这个类也没有什么意义了。

# 定义一个学生类,拥有name、score属性
class Student(object):

    def __init__(self, name, …

Python发布自己的包到pypi上

      作为一个Python程序员,我们都用过pip install xxx的命令来安装自己所需要的Python包,那么如何发布自己的Python包到pypi上,共享给所有人呢?下面我们来介绍一下方法。

先解释下PyPI,PyPI(Python Package Index)是python官方的第三方库的仓库,所有人都可以下载第三方库或上传自己开发的库到PyPI。PyPI推荐使用pip包管理器来下载第三方库。

首先你要有一个自己的项目,这里不做创建项目的介绍,毕竟我也不知道你想写个什么包。

第一步:先创建一个pypi账户  …

Python代码性能优化技巧

    代码优化能够让程序运行更快,它是在不改变程序运行结果的情况下使得程序的运行效率更高,根据 80/20 原则,实现程序的重构、优化、扩展以及文档相关的事情通常需要消耗 80% 的工作量。优化通常包含两方面的内容:减小代码的体积,提高代码的运行效率。

1. 改进算法,选择合适的数据结构

一个良好的算法能够对性能起到关键作用,因此性能改进的首要点是对算法的改进。在算法的时间复杂度排序上依次是:

O(1) > O(lg n) > …

Python中dict()和{}的效率比较

    今天突然想到Python中经常用的两种创建字典的方式dict()和{},那么这两种方式之中哪个效率会更高呢?所以查找了一些资料并自己试验了一下,下面来看看试验的结果

我通过应用timeit来进行试验,看看是否有性能差异。

1. 首先测试一下dict()

>>> python2.7 -m timeit -n 1000000 -r …

理解Python中的if __name__ == '__main__':

1. 摘要

    通俗的理解__name__ == '__main__':假如你叫小明.py,在朋友眼中,你是小明(__name__ == '小明');在你自己眼中,你是你自己(__name__ == …