1. 什么是鸭子类型?

不要检查它是不是鸭子:检查它的叫声像不像鸭子,走起路来像不像鸭子。如果走起路来像鸭子,叫起来也像鸭子,那么它就是鸭子。
鸭子类型是编程语言中动态类型语言中的一种设计风格,一个对象的特征不是由父类决定,而是通过对象的方法决定的。

 2. 函数装饰器

装饰器是可调用的对象,其参数时另一个函数(被装饰的函数);函数装饰器用于在源码中“标记”函数,以某种方式增强函数行为。要掌握装饰器,必须理解闭包。

 3. 猴子补丁

在运行时修改类或模块,而不改动源码。

4. 协程

微线程,调用子程序,子程序又可以调用其他子程序。协程可以把控制器让步给中心调度程序,从而激活其他的协程。yield视作控制流程的方式,从句法上看与生成器类似,yield通常出现在表达式的右边,调用方可以通过send给协程发送数据。

协程的特点:

  • 协程是在单线程里实现任务的切换的。
  • 利用同步的方式去实现异步。
  • 不再需要锁,提高了并发性能。

5. __init__与__new__

__init__()方法是一种特殊的方法,被称为类的初始化方法,当创建了这个类的实例时就会调用该方法。

__new__是类的真正的构造方法,它创造对象,如果创造的是本类的对象,则__new__将构造的对象传给__init__,__init__对对象初始化。

6. 模块和包

每一个Python代码文件都是一个模块,并可以引用其他的模块中的类、方法等。

一个包含一个或多个.py文件的文件夹是一个包。一个包可以包含模块和子文件夹。注意python包需要有一个__init__.py否则无法引用

python常见概念的更多相关文章

  1. Python的面向对象常见概念解析

    [常见概念简介] 类(class)-- 用来描述某些具有相同属性和方法的对象的集合.格式如下 class test(): class_variable ... def f(self,*arg,**ar ...

  2. Python常见的错误汇总

    +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 错误: [错误分析]第二个参数必须为类,否则会报TypeError,所以正确的应 ...

  3. python常见排序算法解析

    python——常见排序算法解析   算法是程序员的灵魂. 下面的博文是我整理的感觉还不错的算法实现 原理的理解是最重要的,我会常回来看看,并坚持每天刷leetcode 本篇主要实现九(八)大排序算法 ...

  4. 聊聊JVM(二)说说GC的一些常见概念

    转自CSDN 上一篇总结GC的基础算法,各种GC收集器的基本原理,还是比较粗粒度的概念.这篇会整理一些GC的常见概念,理解了这些概念,相信对GC有更加深入的理解 1. 什么时候会触发Minor GC? ...

  5. Python常见十六个错误集合,你知道那些?

    使用python会出现各种各样的错误,以下是Python常见的错误以及解决方法. 1.ValueError: 'Conv2d_1a_3×3' is not a valid scope name 这个是 ...

  6. Python 常见文件操作的函数示例(转)

    转自:http://www.cnblogs.com/txw1958/archive/2012/03/08/2385540.html # -*-coding:utf8 -*- ''''' Python常 ...

  7. 转 Python常见数据结构整理

    http://www.cnblogs.com/jeffwongishandsome/archive/2012/08/05/2623660.html Python常见数据结构整理 Python中常见的数 ...

  8. Python常见文件操作的函数示例

    # -*-coding:utf8 -*- ''''' Python常见文件操作示例 os.path 模块中的路径名访问函数 分隔 basename() 去掉目录路径, 返回文件名 dirname() ...

  9. 一文了解Python常见的序列化操作

    关于我 一个有思想的程序猿,终身学习实践者,目前在一个创业团队任team lead,技术栈涉及Android.Python.Java和Go,这个也是我们团队的主要技术栈. Github:https:/ ...

随机推荐

  1. Storm概念学习系列之storm核心组件

    不多说,直接上干货! Storm核心组件 了解 Storm 的核心组件对于理解 Storm 原理非常重要,下面介绍 Storm 的整体,然后介绍 Storm 的核心. Storm 集群由一个主节点和多 ...

  2. Quartz.NET持久化

    Quartz.NET所用到的数据库表结构 官方提供的各种数据库脚本:https://github.com/quartznet/quartznet/tree/master/database/tables ...

  3. SublimeText相关配置

    安转插件:案例格式化HTML代码,需要安装插件,具体安装步骤如下: 1.打开菜单->首选项->插件控制,输入 install package 2.等待程序进入插件管理功能,再输入插件名称: ...

  4. androidStudio修改包名 Android 如何修改包名(同一个手机可以跑2个eros 项目)。

    修改applicationId(gradle.properties). 2.即时同步更新过去,否则不报错

  5. app开发,H5+CSS3页面布局小tips

    1.inline-block使用后带来的间隔影响 2.竖线的处理 3.ssh公匙 4.星星组件的巧妙用法 5.api.js的$api对象与 安卓原生引擎的api对象,均相当于jQuery的$对象 6. ...

  6. 编译64位geos库的经验总结

    作者:朱金灿 来源:http://blog.csdn.net/clever101 使用CMake生成Win64的解决方案后,使用VS2010打开这个解决方案,然后 在"C/C++" ...

  7. Mono for Android 设计器错误:Disconnected from layout renderer

        今早打开vs2012 android 项目的时候出现如下错误提示:     查了半天,终于在官方网站得到答案.(http://forums.xamarin.com/discussion/143 ...

  8. 不该被忽视的CoreJava细节(四)

    令人纳闷的数组初始化细节 这个细节问题我很久以前就想深入研究一下,但是一直没有能够抽出时间,借这系列文章的东风,尽量解决掉这个"心头病". 下面以一维int数组为例,对数组初始化方 ...

  9. HDU 1028 Ignatius and the Princess III伊格和公主III(AC代码)母函数

    题意: 输入一个数n,求组合成此数字可以有多少种方法,每一方法是不记录排列顺序的.用来组成的数字可以有1.2.3....n.比如n个1组成了n,一个n也组成n.这就算两种.1=1,2=1+1=2,3= ...

  10. yii相关手册文档

    1.Yii官方手册 Yii Framework 2.0 权威指南:http://www.yiichina.com/doc/guide/2.0/start-databases 2.yii高级应用程序手册 ...