类和实例的绑定方法和属性

实例绑定 obj.func = func obj.func(obj, &argv)  obj.func = MethodType(func, obj) 第一个参数是方法的引用 第二个参数是自身的引用    这种属于动态绑定 只能当前实例使用

类绑定 classname.func = func  classname.func = MethodType(func, classname) 实例后的对象都能使用 这种方法是在类的内存中创建一个link指向外部的方法

__slots__ 限制类的实例属性 只对当前类起作用 对继承的子类不起作用 如果子类也有__slots__ 那么子类实例允许定义的属性就是自身__slots__加上父类的__slots__

__slots__ = tuple 定义允许绑定的属性名称 注意如果没定私有属性 那么实例也不能使用私有属性 即__slots__ = ('__name') 这样才能使用self.__name = name

@property装饰器把一个方法变成属性 属性名和函数名要一样 如果属性有多个值 则都需要初始化

多继承  MixIn的目的就是给一个类增加多个功能 多继承顺序可查看mro()  C3算法拓扑排序

定制类 __str__(print调用的这个) __iter__(变成可用迭代的) __getitem__(变成可以用切片的) __call__ (把类实例变成可调用的) 特殊方法 不需要直接调用 python的某些函数或操作符会自动的调用对应的特殊方法

为什么有的对象可以用于for循环 有的可以用于切片 是因为对象本身里带有特殊函数 做特定操作会自动调用 dir()查看有哪些特殊函数

枚举类 enum @unique装饰器避免重复value   __member__返回name和value 可以把一组相关常量定义在一个class中 class不可变

实例的类型是class class的类型是type type('Class name', (object,) di c(classmethod=fnc))

元类metaclass可以创建类 修改类

所有错误类型都继承自BaseException try运行可能出错的代码 如果运行出错则后续代码不会继续执行 而是直接跳转至except语句块 执行完except后 如果有finally语句块则执行 如果没发生错误 就不执行except 但finally一定会执行

调用栈traceback

记录错误logging 级别debug info warning error 只打印logging.basicConfig(level=logging.INFO)

抛出异常raise 可以自定义异常类继承系统的异常类

调试 print()打印可能有问题的变量 assert断言 后接的表达式结果若为假则会抛出AssertionError 可以用-0关闭assert 调试器pdb单步调试

单元测试“测试驱动开发” TDD:test-driven development

文档测试

notes for lxf(五)的更多相关文章

  1. notes for lxf(四)

    类名首字母通常大写 创建实例 类名 +() __init__方法 创建实例时把一些属性绑上去 __init__方法第一参数永远是self 表示船舰的实例本身 类是实例的模板 实例是一个一个具体的对象 ...

  2. notes for lxf(三)

    纯函数式编程是没有变量的,只要输入确定输出就确定 指高度抽象的编程范式 特点 函数本身可以作为参数传入 或者允许返回一个函数 Higher-order function 一个函数可以接收另一个函数作为 ...

  3. notes for lxf(二)

    函数 abs()绝对值 max()返回最大值 raise 后接异常类 引发异常 函数返回多个值其实就是返回一个tuple 函数默认返回None 如果有必要检查参数类型用isinstance() typ ...

  4. notes for lxf(一)

    python代码不能用word和windows自带的记事本保存 word保存的不是纯文本文件 记事本会在文件开始的地方加上特殊字符(UTF-8 BOM) 交互模式启动了解释器 直接运行.py文件是一次 ...

  5. django notes 五:Writing models

    models 其实也没什么好说的,就是普通的 python 类 settings 中配置数据库连接 DATABASES = { 'default': { 'ENGINE': 'django.db.ba ...

  6. Android Weekly Notes Issue #229

    Android Weekly Issue #229 October 30th, 2016 Android Weekly Issue #229 Android Weekly笔记, 本期内容包括: 性能库 ...

  7. Android Weekly Notes Issue #221

    Android Weekly Issue #221 September 4th, 2016 Android Weekly Issue #221 ARTICLES & TUTORIALS And ...

  8. 提高CSS文件可维护性的五种方法

    当完成一项前端的工作之后,许多人都会忘记该项目的结构与细节.然而代码并不是马上就能完全定型,在余下的时间里还有不断的维护工作,而这些工作也许不会是你自己完成.所以,结构优良的代码能很大程度上优化它的可 ...

  9. Machine Learning Algorithms Study Notes(1)--Introduction

    Machine Learning Algorithms Study Notes 高雪松 @雪松Cedro Microsoft MVP 目 录 1    Introduction    1 1.1    ...

随机推荐

  1. \t \r \n \f

    \t 的意思是 :水平制表符.将当前位置移到下一个tab位置. \r 的意思是: 回车.将当前位置移到本行的开头. \n 的意思是:回车换行.将当前位置移到下一行的开头. \f的意思是:换页.将当前位 ...

  2. Kafka运行一段时间报错Too many open files

    Kafka运行一段时间报错Too many open files  作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.kafka运行一段时间报错 1>.我最近把kafka集群 ...

  3. TensorFlow windows 安装(base anaconda)

    Python conda安装之后(19年默认是python3.7) 1.降级到python3.6 2.查看python版本 3.安装tensorflow

  4. jQuery使用():Callbacks回调函数列表之异步编程(含源码分析)

    Callbacks的基本功能回调函数缓存与调用 特定需求模式的Callbacks Callbacks的模拟源码 一.Callbacks的基本功能回调函数缓存与调用 Callbacks即回调函数集合,在 ...

  5. centos7安装与配置nginx1.11,开机启动

    1.官网下载安装包 http://nginx.org/en/download.html,选择适合Linux的版本,这里选择最新的版本,下载到本地后上传到服务器或者centos下直接wget命令下载. ...

  6. 记一次安装python umysql模块的报错

    今天,在写一个python脚本的时候要用到数据库相关的umysql模块,但在引用的时候报没有此模块,第一反应就是去安装此模块,但是报没有找到pip命令. #pip install umysql -ba ...

  7. Swagger UI及 Swagger editor教程 API文档搭配 Node使用

    swagger ui 是一个在线文档生成和测试的利器,目前发现最好用的.为啥好用呢?打开 demo,支持API自动生成同步的在线文档些文档可用于项目内部API审核方便测试人员了解 API这些文档可作为 ...

  8. 第31月第19天 NV12

    1. //设置CIContext,并从CIImage -> CGImage -> UIImage CIContext *context = [CIContext contextWithOp ...

  9. Python:匿名函数lambda的函数用法和排序用法

    一.介绍: Lambda函数,是一个匿名函数,创建语法: lambda parameters:express parameters:可选,如果提供,通常是逗号分隔的变量表达式形式,即位置参数. exp ...

  10. boston_housing-多分类问题

    from keras.datasets import boston_housing import numpy as np from keras import models from keras imp ...