文章分类 - python
摘要:博客核心内容: 面向过程的程序设计的核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西。 优点是:极大的降低了程序的复杂度 缺点是:一套流水线或者流程就是用来解决一个问题,生产汽水的流水线无法生产汽车,即便是能,也得是大改,改一个
阅读全文
摘要:简介: JavaScript 函数式脚本语言特性以及其看似随意的编写风格,导致长期以来人们对这一门语言的误解,即认为 JavaScript 不是一门面向对象的语言,或者只是部分具备一些面向对象的特征。本文将回归面向对象本意,从对语言感悟的角度阐述为什么 JavaScript 是一门彻底的面向对象的语
阅读全文
摘要:前言 打算写一系列文章来记录自己学习 Python 3 的点滴;本章主要介绍 Python 有关面向对象编程中的类和实例的相关内容; 本文为作者的原创作品,转载需注明出处; 类 类的定义 1 2 3 4 5 6 class Student(object): def __init__(self, na
阅读全文
摘要:前言 打算写一系列文章来记录自己学习 Python 3 的点滴;本章主要介绍 Python 有关面向对象编程中的类型和属性检查的相关内容; 本文为作者的原创作品,转载需注明出处; 类型检查 有些时候,我们并不知道传入的对象的类型,便需要对其进行类型检查,备注,需要类型检查的场景在 Python 中更
阅读全文
摘要:抽象基类 要定义抽象基类,需要使用abc模块。该模块定义了一个元类(ABCMeta)和一组装饰器@abstractmethod,@abstractproperty。可以按如下方式使用 1 2 3 4 5 6 7 8 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 要定义抽
阅读全文
摘要:深入理解Python中的元类(metaclass) 深入理解Python中的元类metaclass 类也是对象 动态创建类 什么是元类 __metaclass__属性 自定义元类 __metaclass__为什么要用类而不是函数 究竟为什么要使用元类 结语 深入理解Python中的元类metacla
阅读全文
摘要:代码如下: [python] view plain copy class A(object): def __init__(self): print('A') super(A, self).__init__() class B(object): def __init__(self): print('B
阅读全文
摘要:Python MRO(方法解析顺序) Python MRO方法解析顺序 MRO Method Resolution Order 经典类MRO深度优先搜索 新式类MRO C3 BFS广度优先搜索 C3算法 C3算法计算访问顺序列表 merge list公式法 拓扑排序求解mro 比较BFSDFSC3求
阅读全文
摘要:通过代码说明python中的OOP: # 定义类 class Student: '这是Student的文档字符串' studentCount = 0; # 类变量,所有类的实例共享该变量 def __init__(self, name, age): # 构造函数 self.name = name;
阅读全文
摘要:函数使用示例: # 函数定义: # def functionname( parameters ): # "文档字符串" # 函数体 # return [expression] def add(a, b): c = a + b; return c; # 函数调用 m = add(1, 2); prin
阅读全文
摘要:相关概念: MRO:Method Resolution Order,即方法解析顺序,是python中用于处理二义性问题的算法 二义性: python支持多继承,多继承的语言往往会遇到以下两类二义性的问题: C++也是支持多继承的语言之一 python中通过C3算法很好的避免了以上两类二义性的情况。
阅读全文
摘要:属性控制 __slot__ 限制动态扩展范围 从 动态扩展实例的属性和方法 小节中,我们领略到了任意为实例动态扩展属性和方法的方法,及其的风骚;不过,往往,我们不期望这种任意的行为,因为它太过于风骚了;那么,下面我们该如何来限制它呢?比如,我们只希望对 Student 的实例扩展出属性 name 和
阅读全文
摘要:前言 打算写一系列文章来记录自己学习 Python 3 的点滴;本章主要介绍 Python 有关面向对象编程中的继承和多态; 本文为作者的原创作品,转载需注明出处; 继承和多态 本章节,笔者将会继续使用类的定义小节中所使用到的 Student 类,不过稍加修改该,额外提供一个实例方法,say_hel
阅读全文
摘要:前言 打算写一系列文章来记录自己学习 Python 3 的点滴;本章主要介绍 Python 面向对象编程中有关枚举类型的相关内容; 本文为作者的原创作品,转载需注明出处; Enum Python 通过内置 class Enum,来实现 Python 中的枚举特性;构造枚举类有两种方式,一种是直接使用
阅读全文
摘要:前言 打算写一系列文章来记录自己学习 Python 3 的点滴;本章主要介绍 Python 有关面向对象编程中的通过重载内置方法自定义类的类型和外观; 本文为作者的原创作品,转载需注明出处; 重载内置方法 首先,内置方法在 Python 中约定使用 __<name>__ 的形式进行定义的;通过重载
阅读全文
摘要:既然 style guide 上已经列举出来了很多有意思东西,这里就开始这个系列了 metaclass 我们可以先看看 python 提供的 abc,它是一个基于 metaclass 概念实现的 module,我们只需要在定义一个 class 的时候指定 __metaclass__ 为 abc.AB
阅读全文
摘要:C++ 提供的一个 OOP 的功能是多继承。单继承的概念是简单的,但是表述能力非常有限,那么看起来很简单的扩展就是多继承。 单 继承符合人类的认知习惯,鸡鸭鹅都有翅膀,都会飞,他们一定存在某种共性,这种归纳的能力让人们容易理解它们共同的属性可以形成一个父类,这个父类带有共 同的属性,它帮助我们可以从
阅读全文
摘要:range和xrange Python提供了生成和返回整数序列的内置函数range及xrange,虽然这两个函数在功能上是差不多的,但其实现原理还是有差别的。range(n, m)返回的是一个从n到(m-1)的连续的整数列表,而xrange(n, m)返回的却是一个特殊的目的对象,即xrange对象
阅读全文
摘要:最近刚好用到了Python的并发框架Gevent以及多线程,于是把自己总结了一下。 协程 协程,又称微线程,纤程(Coroutine)。一个协程本质就是一个子程序,但是子程序内部可以中断去执行另外的子程序,在适当的时候再回来接着执行。Python本身不提供协程,但可以利用yield实现简单的协程。用
阅读全文
摘要:Python是支持面向对象编程的,同时也是支持多重继承的。而支持多重继承,正是Python的方法解析顺序(Method Resoluthion Order, 或MRO)问题出现的原因所在。python中至少有三种不同的MRO: 经典类(calssic class),深度优先遍历 在python2.2
阅读全文

浙公网安备 33010602011771号