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

实例绑定 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. Haproxy 安装及配置

    Haproxy介绍 HAProxy是一个特别适用于高可用性环境的TCP/HTTP开源的反向代理和负载均衡软件.实现了一种事件驱动,单一进程模型,支持非常大的并发连接,是因为事件驱动模型有更好的资源和时 ...

  2. google搜索指南

    常用搜索技巧 搜索社交媒体@ @twitter 搜索特定价格$ $400 搜素标签# #tag 排除特定词,在词前加减号- -except 搜索完全匹配词,加双引号"" " ...

  3. awk和sed截取nginx和tomcat时间段日志

    1 nginx日志截取示例 日志路径:/usr/local/nginx/logs, 截取access.log中2019年3月24日17点00~02之间的日志: 写法1: cat access.log ...

  4. pythonのdjango 在控制台用log打印操作日志

    在Django项目的settings.py文件中,在最后复制粘贴如下代码: LOGGING = { 'version': 1, 'disable_existing_loggers': False, ' ...

  5. 团队作业第六次-团队Github实战训练

    格式描述 课程名称:软件工程1916|W(福州大学) 作业要求:项目系统设计与数据库设计 团队名称:为了交项目干杯 GitHub地址:地址 作业目标:搭建一个相对公平公正的抽奖系统,根据QQ聊天记录, ...

  6. 终于有人把P2P、P2C、O2O、B2C、B2B、C2C 的区别讲透了!

    原文地址:https://www.cnblogs.com/sap-ronny/p/8149960.html P2P.P2C .O2O .B2C.B2B. C2C,每天看着这些常见又陌生的名词,如果有人 ...

  7. 【easy】530. Minimum Absolute Difference in BST

    找BST树中节点之间的最小差值. /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode ...

  8. 自动备份远程mongodb数据库并拉取到本地

    自动备份远程mongodb数据库并拉取到本地 目标: 远程服务器 .1中的mongodb数据拉回公司测试服务器中 .远程服务器中编写自动备份mongodb脚本 ①编写脚本 # vim /opt/bac ...

  9. Centos7安装JDK+部署Tomcat8

    Centos7下JDK+Tomcat的部署: 1.安装JDK 1.1 通过以下命令获得java JDK列表 yum -y list java* 1.2 通过yum安装JDK yum -y instal ...

  10. linux 安装虚拟机

    如果虚拟机创建不了就重启电脑 重启时 按下F2 出现后 第二个 往下 有个默认的 那个那个 打开虚拟机 选择第一个 然后是选择语言选择软件里面的 软件选择选择 基本网页服务器(右侧选择 python ...