loannes's blog

标签 · python

首页

关于

归档

loading..
pythonC++

浅谈python中的引用、拷贝、指针与C++的区别

最近在学C++,在刷题的时候遇到了关于引用、指针的问题,重温相关知识后发现C++中的引用于python中引用有很大的区别,我想这就是C++效率远高于python的原因之一。通过两篇文章想梳理下python与C++在引用上的区别以及C++中引用和指针的区别。 Python的引用 在python中引用就是引用赋值,等同于浅拷贝,可以看一个例子: In [13]: a = 1 In [14]: b = a In [15]: id(a) Out[15]: 4553065616 In [16]: id(b) Out[16]: 4553065616 In [20]: b is a Out[20]: True In [21]: b == a Out[21]: True 上面代码中先初始化了一个值为1,名字..

更多
loading..
pythonoop

如何理解Python的接口类、抽象类、多态和鸭子类型

抽象类 抽象类是一个特殊的类,为了在团队开发中能够规范化代码而延伸出来的知识,源于java,这种类它只能被继承而不能被实例化。这也说明了该类中的所有函数以及属性都将用来被继承。 为什么要使用抽象类 规范代码: 它的子类必须实现抽象类中的所有函数 前面有提到有一点就是为了规范代码,在团队协作中很经常会遇到多个人开发同一个模块的情况,如果因为函数命名问题导致两个子类中的方法不同。为了避免这种问题才出现了抽象类这种概念。 易于维护: 还有另外个原因是为了减少代码的重复量和易于维护。比方说我们有多个汽车产品,不同的汽车有不同的功能。有的有自动驾驶,有的有全景天窗,但是只要是汽车都会有行驶,左转右转等基本功能,这些基本功能我们就可以放在抽象类中。 from abc import ABCMeta,abst..

更多
loading..
python

python迭代器、生成器看完这篇你就懂了

生成器是python中非常有用特性,而且十分特殊,特殊到以前学过的语言都没有这种功能,身边的一些学其他语言的开发朋友也都不清楚生成器是什么。 所以在这篇文章中将尽可能详细的解释下生成器是什么,迭代器是什么 可迭代对象 在说生成器之前我们必须得提可迭代对象。可迭代对象是什么,顾名思义迭代器就是支持迭代操作的对象。在python3如列表,字典,字符串都是可迭代对象,简单来说就是任何实现了__next__方法的容器都是可迭代对象,而可迭代对象可以转换成迭代器。 迭代器甚至可以表示一个无限大的数据流,例如全体自然数。而使用list是永远不可能存储全体自然数的。 看了下面的代码应该会清楚很多 In [7]: a = [1,2,3] In [8]: b = iter(a) In [9]: a Out[9]: [1..

更多
loading..
python

深度解析Python切片

前言 在平时是否会遇到这样的场景,需要分离出 列表(List)中的部分数据。很多初学者都会想到用while循环去取,很显然这么做肯定是不可取的而且违背了Python之禅中的最重要的一条: Beautiful is better than ugly. 设计高效且漂亮的解决方案是每个程序员的必备素质 那这个时候Python切片就是我们的不二之选,Python切片的表达式十分简单,但是如果不彻底理解它的话很容易出错,这也是为什么本人特地专门为此写一篇文章的原因。 Python切片语法表达式 List[start_index : end_index : step] 先简单解释下这个表达式: start_index : 起始索引值,一般默认为0,表示从列表的初始点开始取值。另外,如果step为负数的话则默认..

更多