自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

爱生活 爱编程

A strong man will struggle with the storms of fate.

  • 博客(43)
  • 资源 (1)
  • 收藏
  • 关注

原创 自定义 view 之薄荷 app 的卷尺效果

本篇文章同时收录在我的个人博客:自定义 view 之薄荷 app 的卷尺效果前几天看到 HenCoder「仿写酷界面」活动——征稿 ,扔物线大大找了几个很酷炫的效果让读者们仿写,最后选出的作品效果也很好,但是没有讲解实现思路,很多人还是不知道怎么做,所以我决定自己动手撸一篇文章记录下学习过程,光看别人写的,自己不动手永远也学不会啊是吧。我看了几个薄荷卷尺的源码,这里记录下一种实现思路,不一定是最优的

2017-10-27 09:29:01 746

原创 『算法』之 初级排序算法总结

本篇文章同时收录在我的个人博客:『算法』之 初级排序算法总结选择排序一种最简单的排序算法:首先,找到数组中最小的那个元素,其次,将他和数组中的第一个元素交换位置。再次,在剩下的元素中找到最小的元素,将它和数组中的第二个元素换位置。如此往复,知道整个数组有序,这种方法叫做选择排序,因为它在不断地选择剩余元素中之中的最小者。 每次交换都能排定一个元素,因此交换的总次数是 N。所以算法的时间效率取

2017-10-13 08:53:51 240

原创 微信小程序 Jgank 开发(一)

写在前面最近突然想学下小程序,说不定以后会用的到,就算用不到,也能在简历上多添一笔(哈哈…)。最好的学习方式当然是以实战项目驱动,所以我打算用 gank.io(干货集中营)的 api 数据做一个小程序,刚好界面也直接照搬了,懒得自己设计,毕竟我对自己的审美认知还是很到位的,哈哈~ 先看官方的效果 整体可以看作两部分,上面是显示分类的选项卡,下面就是具体分类的内容了,然后内容又有三种布局,推荐

2017-10-11 10:42:23 600

原创 smali 文件格式

本篇文章同时收录在我的个人博客:Android Dalvik 指令集HelloWorld首先写一个 HelloWorld 类:package jiuyou.hello.info;public class HelloWorld { public static void main(String[] args){ System.out.println("hello world");

2017-10-11 10:22:55 566

原创 Android Dalvik 指令集

本篇文章同时收录在我的个人博客:Android Dalvik 指令集前言目前 DEX 可执行文件主流的反汇编工具有 BakSmali 与 Dedexer,本篇文章 Dalvik 指令的语法都采用的 Smali 语法格式。了解 Dalvik 寄存器Dalvik 虚拟机基于寄存器架构,作用与特定的 CPU 上运行,设计之初采用了 ARM 架构,ARM 架构的 CPU 本身集成了多个寄存器,Dalvik

2017-09-28 10:45:49 685

原创 分享一些网站和工具

github地址:https://github.com/jianshijiuyou/ShareSomeSitesAndTools分享一些网站和工具android   博客类   学习网站   值得Android开发者阅读系列   高质量Android社区   各种开源控件/项目 .net   主要是一些大牛的博客 优秀网站(不限编程语言) 视频学习(不限编程语言) 工具类网站

2017-06-12 10:34:23 1109

原创 python 字符串常用操作

#coding=utf-8str1=" dafhgfshhk lfhgj hhs dhfs "len(str1)#计算长度,当有中文时需要显示转换为utf-8编码,否则计算的结果会有误差str2="中文"len(str2) #结果是 6#将字符串显示转换为utf-8str3=str2.decode("utf-8")len(str3) #结果为 2str3=u"中文" #在字符串

2016-11-04 14:43:47 319

原创 用*号搭建一个金字塔(python实现)

如图 * * * * * * * * * * * * * * * * * * * * * * * * * 代码如下#coding=utf-8#raw代表要画的行数raw=5n=0m=rawwhile n<(raw*2): #画空格 w=m while w>0: print " ",

2016-11-03 23:22:33 13111 2

原创 python基础(一)

hello worldprint("hello python")支持中文#coding=utf-8print("中文")变量python中的变量类型是运行时动态解析,所以不需要预先定义。 在python中,基本的变量类型有一下几种#coding=utf-8a=47b=12.02#python中bool类型False和True开头字母需要大写c=Falsed=True#字符串可以用单引

2016-11-03 21:34:25 227

原创 linux基础之压缩与归档

常见的压缩文件有哪些?*.Z compress程序压缩的文件*.gz gzip程序压缩的文件*.bz2 bzip2程序压缩的文件*.tar tar程序归档的数据,并没有压缩过*.tar.gz tar程序归档后,再经过gzip压缩*.tar.bz2 tar程序归档后,再经过bzip

2016-06-15 12:12:32 649

原创 Error:Execution failed for task ':app:transformClassesWithDexForDebug'.

今天在引用一个项目时报出如下错误:..........................................To run dex in process, the Gradle daemon needs a larger heap.It currently has approximately 910 MB.For faster builds, increase the maximu

2016-05-16 15:44:25 1654

原创 linux基础之关于终端的一些命令

whoami获取当前登录的用户的用户名[root@iZ28g26851kZ user1]# whoamiroot[root@iZ28g26851kZ user1]# who显示当前登录到的系统上的用户都有哪些 [root@iZ28g26851kZ user1]# who root pts/0 2016-05-14 10:4

2016-05-15 21:02:07 326

原创 linux基础之FACL

FACLFACL:Filesystem Access Control List 利用文件扩展属性保存额外的访问控制权限有什么用呢?当有一个属主和属组都是A的文件,要让B访问,一般情况就是修改文件的其他用户访问权限,但是这样不只B用户可以访问,其他所有的用户都可以访问,在这种情况下就要用到FACL, FACL可以控制文件让指定的用户拥有权限操作。setfacl设置文件的访问控制权限信息setfac

2016-05-14 16:55:57 564

原创 linux基础之文件查找

locate特点:非实时,模糊匹配,查找时根据全系统文件数据库进行的,此数据库会定时更新(取决于系统配置),也可以使用`updatedb`手动生成文件数据库,但是这会相当慢。用法:locate FILENAMEfind特点:实时查找,精确,原理就是遍历指定目录中的所有文件完成查找,所以速度慢。支持众多的查找选项用法:find 查找路径 查找

2016-05-13 21:51:20 319

原创 linux基础之vim编辑器使用技巧

打开文件时指定默认光标的位置直接数字指定vim +n file -- n:指定光标在哪一行例:[root@iZ28g26851kZ ~]# vim +10 /etc/inittab 打开文件处在文件尾部+号后不加任何参数,代表定位光标到文件尾部[root@iZ28g26851kZ ~]# vim + /etc/inittab 模式匹配打开文件,定位到第一个次被匹配到的行vim +/PATTER

2016-05-11 19:57:48 429

原创 linux基础之shell编程(4)-for循环和case语句

for循环用法:for 变量 in 列表; do 循环体done那么如何生成列表呢?{1..100} 这样就能生成列表了 =========================================== 例:#!/bin/bash#for I in {1..100};do echo $Idoneseq用seq命令也可以生成列表用法:seq [起始数 [步进长度]

2016-05-10 16:22:24 1380

原创 linux基础之sed命令

sed命令是用来处理文本的,且是按行来处理文本,sed处理文本时会将文本内容放置在模式空间中,处理完之后输出模式空间中的文本内容,所以如果你用sed命令处理一个文件,是不会改变文件内容本身的,改变的只是模式空间的临时内容。用法sed 'AddressCommand' file ...Address:可以理解为定位数据,通过一系列的操作,筛选出需要的数据 Command:对选出的数据(行)进行一些什

2016-05-09 22:27:02 2059

原创 linux基础之shell编程(3)-给脚本设置参数

bash的变量类型本地变量(局部变量)环境变量位置变量:$1,$2,$3, ...特殊变量:$?,$#,$*,$@那让脚本拥有获取外界参数的能力就要用的位置变量,$1代表第一个参数,$2代表第二个参数,依次类推 例:vartest.sh#!/bin/bash#ONEVAR=$1TWOVAR=$2THREEVAR=$3echo "第一个参数是:${ONEVAR}"echo "第二

2016-05-09 16:50:43 3559

原创 linux基础之shell编程(2)-条件判断,算数运算,测试

bash中如果实现条件判断? 条件测试类型整数测试字符测试文件测试 条件测试的表达式有三种[ expression ] --方括号与表达式之间一定要有一个空格[[ expression ]] test expression整数比较-eq: 测试两个整数是否相等 例:$A -eq $B-ne: 测试两个整数是否不等 不等

2016-05-09 15:56:27 1700

原创 linux基础之shell编程(1)

shell:属于弱类型编程语言 什么是弱类型,什么是强类型?强类型:变量在使用前,必须事先声明,甚至还需要初始化;弱类型:变量用时声明,甚至不区分类型; 变量赋值,引用赋值:VAR_NAME=VALUE 引用:${VARNAME} (花括号一般可以省略) 例:[root@iZ28g26851kZ ~]# name=test --赋值[root@iZ28g26851kZ ~]# ec

2016-05-07 12:08:43 3154

原创 linux基础之常用命令(4)

grep根据模式搜索文本-i:胡忽略大小写--color:高亮颜色显示匹配到的字符串-v:反向匹配,显示没有匹配到的行-o:只显示被匹配到的字符串-A #:匹配并向后多显示#行-B #:匹配并向前多显示#行-C #:匹配并前后都多显示#行正则表达式元字符.:匹配任意单个字符*:匹配其前面的字符人一次\?:匹配其前面的字符1次或0次\{m,n\}:匹配其前面的字符至少m次,至多n次

2016-05-06 18:55:38 3231

原创 linux基础之用户及权限

权限分为r,w,x文件:r:可读,可以使用类似cat等命令查看文件内容;w:可写,可以编辑或删除此文件;x: 可执行,eXacutable,可以命令提示符下当作命令提交给内核运行;目录:r: 可以对此目录执行ls以列出内部的所有文件;w: 可以在此目录创建文件;x: 可以使用cd切换进此目录,也可以使用ls -l查看内部文件的详细信息;一些相关的文件用户:

2016-05-05 22:59:22 556

原创 linux基础之bash特性

命令替换把命令中某个子命令替换为其结果的过程 例:[root@iZ28g26851kZ ~]# echo The current directory is $(pwd)The current directory is /root[root@iZ28g26851kZ ~]# cd /opt/[root@iZ28g26851kZ opt]# echo The current d

2016-05-05 12:10:09 365

原创 linux基础之常用命令(3)

cp复制文件 将一个文件test复制到y目录下,并命名为test[root@iZ28g26851kZ x]# lstest y z[root@iZ28g26851kZ x]# cp test y[root@iZ28g26851kZ x]# tree ././├── test├── y│ └── test└── z └── k3 directories, 2 file

2016-05-04 15:48:09 375

原创 linux基础之常用命令(2)

date显示当前系统时间clock或者hwclock显示当前硬件时钟 hwclock -w :将系统时间同步到硬件时间 hwclock -s :将硬件时间读取到系统时间获得命令的使用帮助内部命令:help < command >外部命令:< command > - -help:获取命令的简单帮助命令手册man < command > 几乎所有的命令都可以用man查看详细帮助[root@iZ

2016-05-03 18:05:23 260

原创 linux基础之常用命令(1)

linux基础之常用命令(1)

2016-05-03 14:02:21 508

原创 android各种对话框总结笔记

android中实现各种对话框,包括自定义布局的对话框

2015-02-09 17:05:00 636 1

原创 解决百度分享链接不存在或失效的问题

这个方法还可以使用火狐浏览器模拟其他浏览器的效果,包括手机浏览器

2015-02-07 13:38:57 6525

原创 解决Android sdk docs(离线帮助文档)访问速度慢(访问失败)的问题

解决Android sdk docs(离线帮助文档)访问速度慢(访问失败)的问题

2015-01-27 12:02:23 913

原创 ADB使用基础

android开发时必用的工具adb

2015-01-11 13:17:33 627

原创 ADO.NET基础知识点总结

使用ado.net对sql server 进行一些基本的操作,包括调用存储过程,使用事务,封装SqlHelper

2014-12-24 09:51:32 679

原创 sql server 基础知识点总结

自己学习sql server 时的一些笔记,希望对大家有所帮助

2014-12-23 21:51:05 6100 2

原创 sql server 查询语句基础

SELECT 查询语句基础

2014-10-16 17:45:24 541

原创 fragment的生命周期函数介绍

// Called when the Fragment is attached to its parent Activity. //调用该方法时会被连接到他的父activity上 @Override public void onAttach(Activity activity) { super.onAttach(activity); // Get a reference to the

2014-10-12 16:06:49 1397

原创 Android之Http请求基础

一、使用HttpGet方式进行请求

2014-08-17 22:13:52 486

转载 Android 控件布局常用属性

Android 控件布局常用属性android:id —— 为控件指定相应的IDandroid:text —— 指定控件当中显示的文字,需要注意的是,这里尽量使用strings.xml文件当中的字符串android:grivity —— 指定控件的基本位置,比如说居中,居右等位置android:textSize —— 指定控件当中字体的大小android:backgroun

2014-08-10 16:22:46 367

转载 android.permission权限请求汇总

在Android开发中,当程序执行需要操作安全敏感项时,必须在androidmanifest.xml中声明相关权限请求。比如,声明拨打电话的权限请求方法如下:

2014-08-09 19:10:12 699

原创 Activity生命周期的简单介绍

onCreate()当Activity第一次被创建时调用onStart()当

2014-08-08 21:08:20 773

原创 Android蓝牙基础(3)-实现蓝牙聊天

最近了解了一下蓝牙通信方面de

2014-08-08 11:13:38 672

原创 Android蓝牙基础(2)

1、如何获取蓝牙适配以及操作

2014-08-07 22:52:39 537

流畅的 Python中文版,带目录

第一部分 序幕 第 1 章 Python 数据模型 1.1 一摞Python风格的纸牌 1.2 如何使用特殊方法 1.2.1 模拟数值类型 1.2.2 字符串表示形式 1.2.3 算术运算符 1.2.4 自定义的布尔值 1.3 特殊方法一览 1.4 为什么len不是普通方法 1.5 本章小结 1.6 延伸阅读 第二部分 数据结构 第 2 章 序列构成的数组 2.1 内置序列类型概览 2.2 列表推导和生成器表达式 2.2.1 列表推导和可读性 2.2.2 列表推导同filter和map的比较 2.2.3 笛卡儿积 2.2.4 生成器表达式 2.3 元组不仅仅是不可变的列表 2.3.1 元组和记录 2.3.2 元组拆包 2.3.3 嵌套元组拆包 2.3.4 具名元组 2.3.5 作为不可变列表的元组 2.4 切片 2.4.1 为什么切片和区间会忽略最后一个元素 2.4.2 对对象进行切片 2.4.3 多维切片和省略 2.4.4 给切片赋值 2.5 对序列使用+和* 建立由列表组成的列表 2.6 序列的增量赋值 一个关于+=的谜题 2.7 list.sort方法和内置函数sorted 2.8 用bisect来管理已排序的序列 2.8.1 用bisect来搜索 2.8.2 用bisect.insort插入新元素 2.9 当列表不是首选时 2.9.1 数组 2.9.2 内存视图 2.9.3 NumPy和SciPy 2.9.4 双向队列和其他形式的队列 2.10 本章小结 2.11 延伸阅读 第 3 章 字典和集合 3.1 泛映射类型 3.2 字典推导 3.3 常见的映射方法 用setdefault处理找不到的键 3.4 映射的弹性键查询 3.4.1 defaultdict:处理找不到的键的一个选择 3.4.2 特殊方法__missing__ 3.5 字典的变种 3.6 子类化UserDict 3.7 不可变映射类型 3.8 集合论 3.8.1 集合字面量 3.8.2 集合推导 3.8.3 集合的操作 3.9 dict和set的背后 3.9.1 一个关于效率的实验 3.9.2 字典中的散列表 3.9.3 dict的实现及其导致的结果 3.9.4 set的实现以及导致的结果 3.10 本章小结 3.11 延伸阅读 第 4 章 文本和字节序列 4.1 字符问题 4.2 字节概要 结构体和内存视图 4.3 基本的编解码器 4.4 了解编解码问题 4.4.1 处理UnicodeEncodeError 4.4.2 处理UnicodeDecodeError 4.4.3 使用预期之外的编码加载模块时抛出的SyntaxError 4.4.4 如何找出字节序列的编码 4.4.5 BOM:有用的鬼符 4.5 处理文本文件 编码默认值:一团糟 4.6 为了正确比较而规范化Unicode字符串 4.6.1 大小写折叠 4.6.2 规范化文本匹配实用函数 4.6.3 极端“规范化”:去掉变音符号 4.7 Unicode文本排序 使用Unicode排序算法排序 4.8 Unicode数据库 4.9 支持字符串和字节序列的双模式API 4.9.1 正则表达式中的字符串和字节序列 4.9.2 os函数中的字符串和字节序列 4.10 本章小结 4.11 延伸阅读 第三部分 把函数视作对象 第 5 章 一等函数 5.1 把函数视作对象 5.2 高阶函数 map、filter和reduce的现代替代品 5.3 匿名函数 5.4 可调用对象 5.5 用户定义的可调用类型 5.6 函数内省 5.7 从定位参数到仅限关键字参数 5.8 获取关于参数的信息 5.9 函数注解 5.10 支持函数式编程的包 5.10.1 operator模块 5.10.2 使用functools.partial冻结参数 5.11 本章小结 5.12 延伸阅读 第 6 章 使用一等函数实现设计模式 6.1 案例分析:重构“策略”模式 6.1.1 经典的“策略”模式 6.1.2 使用函数实现“策略”模式 6.1.3 选择最佳策略:简单的方式 6.1.4 找出模块中的全部策略 6.2 “命令”模式 6.3 本章小结 6.4 延伸阅读 第 7 章 函数装饰器和闭包 7.1 装饰器基础知识 7.2 Python何时执行装饰器 7.3 使用装饰器改进“策略”模式 7.4 变量作用域规则 7.5 闭包 7.6 nonlocal声明 7.7 实现一个简单的装饰器 工作原理 7.8 标准库中的装饰器 7.8.1 使用functools.lru_cache做备忘 7.8.2 单分派泛函数 7.9 叠放装饰器 7.10 参数化装饰器 7.10.1 一个参数化的注册装饰器 7.10.2 参数化clock装饰器 7.11 本章小结 7.12 延伸阅读 第四部分 面向对象惯用法 第 8 章 对象引用、可变性和垃圾回收 8.1 变量不是盒子 8.2 标识、相等性和别名 8.2.1 在==和is之间选择 8.2.2 元组的相对不可变性 8.3 默认做浅复制 为任意对象做深复制和浅复制 8.4 函数的参数作为引用时 8.4.1 不要使用可变类型作为参数的默认值 8.4.2 防御可变参数 8.5 del和垃圾回收 8.6 弱引用 8.6.1 WeakValueDictionary简介 8.6.2 弱引用的局限 8.7 Python对不可变类型施加的把戏 8.8 本章小结 8.9 延伸阅读 第 9 章 符合Python风格的对象 9.1 对象表示形式 9.2 再谈向量类 9.3 备选构造方法 9.4 classmethod与staticmethod 9.5 格式化显示 9.6 可散列的Vector2d 9.7 Python的私有属性和“受保护的”属性 9.8 使用 __slots__ 类属性节省空间 __slots__ 的问题 9.9 覆盖类属性 9.10 本章小结 9.11 延伸阅读 第 10 章 序列的修改、散列和切片 10.1 Vector类:用户定义的序列类型 10.2 Vector类第1版:与Vector2d类兼容 10.3 协议和鸭子类型 10.4 Vector类第2版:可切片的序列 10.4.1 切片原理 10.4.2 能处理切片的__getitem__方法 10.5 Vector类第3版:动态存取属性 10.6 Vector类第4版:散列和快速等值测试 10.7 Vector类第5版:格式化 10.8 本章小结 10.9 延伸阅读 第 11 章 接口:从协议到抽象基类 11.1 Python文化中的接口和协议 11.2 Python喜欢序列 11.3 使用猴子补丁在运行时实现协议 11.4 Alex Martelli的水禽 11.5 定义抽象基类的子类 11.6 标准库中的抽象基类 11.6.1 collections.abc模块中的抽象基类 11.6.2 抽象基类的数字塔 11.7 定义并使用一个抽象基类 11.7.1 抽象基类句法详解 11.7.2 定义Tombola抽象基类的子类 11.7.3 Tombola的虚拟子类 11.8 Tombola子类的测试方法 11.9 Python使用register的方式 11.10 鹅的行为有可能像鸭子 11.11 本章小结 11.12 延伸阅读 第 12 章 继承的优缺点 12.1 子类化内置类型很麻烦 12.2 多重继承和方法解析顺序 12.3 多重继承的真实应用 12.4 处理多重继承 Tkinter好的、不好的和令人厌恶的方面 12.5 一个现代示例:Django通用视图中的混入 12.6 本章小结 12.7 延伸阅读 第 13 章 正确重载运算符 13.1 运算符重载基础 13.2 一元运算符 13.3 重载向量加法运算符+ 13.4 重载标量乘法运算符* 13.5 众多比较运算符 13.6 增量赋值运算符 13.7 本章小结 13.8 延伸阅读 第五部分 控制流程 第 14 章 可迭代的对象、迭代器和生成器 14.1 Sentence类第1版:单词序列 序列可以迭代的原因:iter函数 14.2 可迭代的对象与迭代器的对比 14.3 Sentence类第2版:典型的迭代器 把Sentence变成迭代器:坏主意 14.4 Sentence类第3版:生成器函数 生成器函数的工作原理 14.5 Sentence类第4版:惰性实现 14.6 Sentence类第5版:生成器表达式 14.7 何时使用生成器表达式 14.8 另一个示例:等差数列生成器 使用itertools模块生成等差数列 14.9 标准库中的生成器函数 14.10 Python 3.3中新出现的句法:yield from 14.11 可迭代的归约函数 14.12 深入分析iter函数 14.13 案例分析:在数据库转换工具中使用生成器 14.14 把生成器当成协程 14.15 本章小结 14.16 延伸阅读 第 15 章 上下文管理器和 else 块 15.1 先做这个,再做那个:if语句之外的else块 15.2 上下文管理器和with块 15.3 contextlib模块中的实用工具 15.4 使用@contextmanager 15.5 本章小结 15.6 延伸阅读 第 16 章 协程 16.1 生成器如何进化成协程 16.2 用作协程的生成器的基本行为 16.3 示例:使用协程计算移动平均值 16.4 预激协程的装饰器 16.5 终止协程和异常处理 16.6 让协程返回值 16.7 使用yield from 16.8 yield from的意义 16.9 使用案例:使用协程做离散事件仿真 16.9.1 离散事件仿真简介 16.9.2 出租车队运营仿真 16.10 本章小结 16.11 延伸阅读 第 17 章 使用期物处理并发 17.1 示例:网络下载的三种风格 17.1.1 依序下载的脚本 17.1.2 使用concurrent.futures模块下载 17.1.3 期物在哪里 17.2 阻塞型I/O和GIL 17.3 使用concurrent.futures模块启动进程 17.4 实验Executor.map方法 17.5 显示下载进度并处理错误 17.5.1 flags2系列示例处理错误的方式 17.5.2 使用futures.as_completed函数 17.5.3 线程和多进程的替代方案 17.6 本章小结 17.7 延伸阅读 第 18 章 使用 asyncio 包处理并发 18.1 线程与协程对比 18.1.1 asyncio.Future:故意不阻塞 18.1.2 从期物、任务和协程中产出 18.2 使用asyncio和aiohttp包下载 18.3 避免阻塞型调用 18.4 改进asyncio下载脚本 18.4.1 使用asyncio.as_completed函数 18.4.2 使用Executor对象,防止阻塞事件循环 18.5 从回调到期物和协程 每次下载发起多次请求 18.6 使用asyncio包编写服务器 18.6.1 使用asyncio包编写TCP服务器 18.6.2 使用aiohttp包编写Web服务器 18.6.3 更好地支持并发的智能客户端 18.7 本章小结 18.8 延伸阅读 第六部分 元编程 第 19 章 动态属性和特性 19.1 使用动态属性转换数据 19.1.1 使用动态属性访问JSON类数据 19.1.2 处理无效属性名 19.1.3 使用 __new__ 方法以灵活的方式创建对象 19.1.4 使用shelve模块调整OSCON数据源的结构 19.1.5 使用特性获取链接的记录 19.2 使用特性验证属性 19.2.1 LineItem类第1版:表示订单中商品的类 19.2.2 LineItem类第2版:能验证值的特性 19.3 特性全解析 19.3.1 特性会覆盖实例属性 19.3.2 特性的文档 19.4 定义一个特性工厂函数 19.5 处理属性删除操作 19.6 处理属性的重要属性和函数 19.6.1 影响属性处理方式的特殊属性 19.6.2 处理属性的内置函数 19.6.3 处理属性的特殊方法 19.7 本章小结 19.8 延伸阅读 第 20 章 属性描述符 20.1 描述符示例:验证属性 20.1.1 LineItem类第3版:一个简单的描述符 20.1.2 LineItem类第4版:自动获取储存属性的名称 20.1.3 LineItem类第5版:一种新型描述符 20.2 覆盖型与非覆盖型描述符对比 20.2.1 覆盖型描述符 20.2.2 没有 __get__ 方法的覆盖型描述符 20.2.3 非覆盖型描述符 20.2.4 在类中覆盖描述符 20.3 方法是描述符 20.4 描述符用法建议 20.5 描述符的文档字符串和覆盖删除操作 20.6 本章小结 20.7 延伸阅读 第 21 章 类元编程 21.1 类工厂函数 21.2 定制描述符的类装饰器 21.3 导入时和运行时比较 理解计算时间的练习 21.4 元类基础知识 理解元类计算时间的练习 21.5 定制描述符的元类 21.6 元类的特殊方法 __prepare__ 21.7 类作为对象 21.8 本章小结 21.9 延伸阅读 结语 延伸阅读 附录 A 辅助脚本 A.1 第3章:in运算符的性能测试 A.2 第3章:比较散列后的位模式 A.3 第9章:有或没有 __slots__ 时,RAM的用量 A.4 第14章:转换数据库的isis2json.py脚本 A.5 第16章:出租车队离散事件仿真 A.6 第17章:加密示例 A.7 第17章:flags2系列HTTP客户端示例 A.8 第19章:处理OSCON日程表的脚本和测试 Python 术语表 作者简介

2018-05-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除