特殊变量

python用下划线作为变量的前缀和后缀指定特殊变量.
_XXX : 不用 'from module import *' 导入, 可以认为是模块中的私有变量
__XXX__ : 系统定义的名字
__XXX : 类中的私有变量
避免用下划线开头作为变量名称

模块布局

(1) 起始行(unix)
(2) 模块文档, 简介模块的功能和重要的全局变量的含义, 模块外可通过 module.__doc__ 访问这些内容
(3) 模块导入
(4) 变量定义, 这里指的是全局变量, 本模块中的所有函数都可以直接使用. 从好的编程风格角度说, 除非必须, 否则尽量使用局部变量代替全局变量
(5) 类定义
(6) 函数定义
(7) 主程序

测试代码

在主程序中书写测试代码

测试代码仅当文件被执行时运行(不是文件作为模块被其他模块导入), 我们应该利用 __name__这个有利条件, 将测试代码放在名字叫main()或者test()的函数中. 如果该模块被当作脚本运行, 就调用该模块.

编程调试

debugger : pdg, 允许设置断点, 调试

logger : logging, 程序日志系统

profiles: profile, hotshot, cProfile

匿名函数

python允许使用lambda关键字创建匿名函数. 可以有参数

lambda 表达式返回可调用的函数对象.

lambda : True

在上边的例子中, 我们简单的用 lambda 创建了一个函数(对象), 既没有在任何地方保存它, 也没有在任何地方调用它. 这个函数的引用计数在函数创建时被设置为True, 但是因为没有引用保存下来, 计数又回到 0 , 然后被垃圾回收. 为了保留住这个对象, 我们将它保存在一个变量中, 以后可以随时调用.

true = lambda : True

true()

闭包

看样子跟 javascript 类似, 函数中定义函数.

python 核心编程 01的更多相关文章

  1. python核心编程(第二版)习题

    重新再看一遍python核心编程,把后面的习题都做一下.

  2. Python核心编程这本书的一些错误

    <Python核心编程第二版>这本书比<Python基础教程第二版修订版>详细很多,丰富了很多细节,虽然它是一本经典的入门书,但我发现还是存在一些明显的错误.在面向对象编程这一 ...

  3. Python核心编程-描述符

    python中,什么描述符.描述符就是实现了"__get__"."__set__"或"__delete__" 方法中至少一个的对象.什么是非 ...

  4. Python核心编程-闭包

    百度搜了一下闭包的概念:简而言之,闭包的作用就是在外部函数执行完并返回后,闭包使得收机制不会收回函数所占用的资源,因为内部函数的执行需要依赖外函数中的变量.这是对闭包作用的非常直白的描述,不专业也不严 ...

  5. python核心编程第二版笔记

    python核心编程第二版笔记由网友提供:open168 python核心编程--笔记(很详细,建议收藏) 解释器options:1.1 –d   提供调试输出1.2 –O   生成优化的字节码(生成 ...

  6. 学习《Python核心编程》做一下知识点提要,方便复习(一)

    学习<Python核心编程>做一下知识点提要,方便复习. 计算机语言的本质是什么? a-z.A-Z.符号.数字等等组合成符合语法的字符串.供编译器.解释器翻译. 字母组合后产生各种变化拿p ...

  7. python核心编程--笔记

    python核心编程--笔记 的解释器options: 1.1 –d   提供调试输出 1.2 –O   生成优化的字节码(生成.pyo文件) 1.3 –S   不导入site模块以在启动时查找pyt ...

  8. Python核心编程第二版(中文).pdf 目录整理

    python核心编程目录 Chapter1:欢迎来到python世界!-页码:7 1.1什么是python 1.2起源  :罗萨姆1989底创建python 1.3特点 1.3.1高级 1.3.2面向 ...

  9. Python核心编程

    对<Python核心编程>的褒奖" The long-awaited second edition of Wesley Chun's Core PythonProgramming ...

随机推荐

  1. JavaScript 循环:如何处理 async/await

    如何串行或者并行运行异步循环? 在使用循环处理异步的魔法之前,我们先来看下我们是怎么处理同步循环的. 同步循环 很久以前我写的循环是这样的: for (var i = 0; i < array. ...

  2. InlineModelAdmin对象的学习

    一.InlineModelAdmin的介绍 管理界面可以在与父模型相同的页面上编辑模型.这些被称为内联. Django提供了两个子类,InlineModelAdmin它们是: TabularInlin ...

  3. Linux重启命令与如何重启网络?

    分享下Linux重启命令的用法,linux如何重启网络的方法? 第一部分,有关Linux重启命令的用法 1.shutdown2.poweroff3.init4.reboot5.halt *---具体说 ...

  4. Nexus6p:正在下载系统更新,没有进度

    今天想把手头的测试机更新至Android 8.1, 挂上VPN之后,在设置里点击系统更新,等了半天还是这个样子... 进度条死活不动,我也是醉了,后来找到了一个可行的办法: 先从设置里面的安全和位置性 ...

  5. performance Counter

    Logman https://technet.microsoft.com/en-us/library/bb490956.aspx http://blogs.technet.com/b/askperf/ ...

  6. javascript原生bind方法详解

    bind()方法,是javascript原生的函数类的一个原型方法(即Function.prototype里的方法),不支持ie低版本. 基本格式: function.bind(obj1,obj2,o ...

  7. 读取本地已有的.db数据库

    public class MyDB extends SQLiteOpenHelper { // 数据库的缺省路径 private static String DB_PATH ; private sta ...

  8. ubuntu下安装vmTools, 和共享文件

    如果没有需要下载一个vmTools,我是下载的 然后加载到光驱,然后在ubuntu下面可以找到光驱 解压里面的文件, 我解压到 Documents下面 然后ctrl + alt + t进入控制台 cd ...

  9. Android MediaPlayer接口及状态迁移

    [时间:2016-09] [状态:Open] [关键词:android,mediaplayer,播放接口,播放状态图] 引言 本文内容相对简单,作为后续处理的起点,简要整理了Android Media ...

  10. Python3下requests库发送multipart/form-data类型请求

    [本文出自天外归云的博客园] 要模拟multipart/form-data类型请求,可以用python3的requests库完成.代码示例如下: #请求的接口url url = "url&q ...