《流畅的python》学习笔记(一)

  • 起步
  • 第一章 python数据模型
    • __len__方法

起步

从事软件开发14年半,前12年一直用C/C++写服务器端程序,主要涉及作业、流程调度和通信等等程序,从纯写代码到大系统的架构设计,刨过各种坑,战战兢兢的在软件行业前行,从不放弃学习,也从学习中得到快乐。从事传统软件行业,公司的技术水平及其有限,作为软件公司,公司领导更看重的是业务,对技术,尤其是软件技术并不关心。作为公司服务和支撑部门的领导,所负责的项目都是基础系统,合理的系统架构尤其重要。
为什么学python,初衷非常简单,公司业务特别多,人手有限,要招到一个合格的C++程序员,不仅付出的工资昂贵,关键还不好找,在这个python、java流行的年代,领导以为招python工程师容易且相对薪水低(事实证明这个想法很XX),所以项目很多代码转向pyhon。要写好代码(注意能写代码和写好代码绝对是两回事),必须对语言特性有非常透彻的了解。在学了两年皮毛,也用python写了一些简单的代码后,我觉得好好学一下《流畅的python》,都说这本书是python进阶的经典之作。
我会在这儿记录下我的学习心得,也会结合在项目中的运用。主要是为了鞭策自己学下去,600页的书,读起来不容易哦,希望我能在3个月的时间读完。

第一章 python数据模型

第一章开篇就实现了一摞python风格的纸牌,一上来就搞得很懵圈,很多人说这本书对python学习者不友善,确实这不是一本适合初学者的书,如果还没有学基础,那还是回去把基础打扎实,最起码要了解基本的语法。
这一章主要讲解特殊函数的使用方法,在类中实现了__getitem__(此处为双下划线)、__len__等方法,可以被python解析器调用,实现按数组获取原色、计算对象长度、随机选择等。所以不要被一开始的例子吓到,理解这些特殊方法,你会觉得豁然开朗。

__len__方法

一般类中前后有__的都是类的特殊方法,专门给python解释器调用的,比如说__len__,并不会显式的调用,当你调用len时python回去自动调用这个方法,当然你可以在这个里面返回任意东西,但是还是建议你按照约定俗成来返回长度。

##getitem
让类支持切片,下标取值,迭代及in这种判断等操作。

##repr
可以用来支持列的字符串表示,当调用str(classname)和print时,会自动去调用这个函数。

##bool
有了上面的学习,大概能够理解这个函数的用处,自定义的bool函数,可以根据自己的喜好:),来返回True 或False

这一节还讲了列举了其它的一些特殊函数

《流畅的python》学习笔记相关推荐

  1. 第二行代码学习笔记——第六章:数据储存全方案——详解持久化技术

    本章要点 任何一个应用程序,总是不停的和数据打交道. 瞬时数据:指储存在内存当中,有可能因为程序关闭或其他原因导致内存被回收而丢失的数据. 数据持久化技术,为了解决关键性数据的丢失. 6.1 持久化技 ...

  2. 第一行代码学习笔记第二章——探究活动

    知识点目录 2.1 活动是什么 2.2 活动的基本用法 2.2.1 手动创建活动 2.2.2 创建和加载布局 2.2.3 在AndroidManifest文件中注册 2.2.4 在活动中使用Toast ...

  3. 第一行代码学习笔记第八章——运用手机多媒体

    知识点目录 8.1 将程序运行到手机上 8.2 使用通知 * 8.2.1 通知的基本使用 * 8.2.2 通知的进阶技巧 * 8.2.3 通知的高级功能 8.3 调用摄像头和相册 * 8.3.1 调用 ...

  4. 第一行代码学习笔记第六章——详解持久化技术

    知识点目录 6.1 持久化技术简介 6.2 文件存储 * 6.2.1 将数据存储到文件中 * 6.2.2 从文件中读取数据 6.3 SharedPreferences存储 * 6.3.1 将数据存储到 ...

  5. 第一行代码学习笔记第三章——UI开发的点点滴滴

    知识点目录 3.1 如何编写程序界面 3.2 常用控件的使用方法 * 3.2.1 TextView * 3.2.2 Button * 3.2.3 EditText * 3.2.4 ImageView ...

  6. 第一行代码学习笔记第十章——探究服务

    知识点目录 10.1 服务是什么 10.2 Android多线程编程 * 10.2.1 线程的基本用法 * 10.2.2 在子线程中更新UI * 10.2.3 解析异步消息处理机制 * 10.2.4 ...

  7. 第一行代码学习笔记第七章——探究内容提供器

    知识点目录 7.1 内容提供器简介 7.2 运行权限 * 7.2.1 Android权限机制详解 * 7.2.2 在程序运行时申请权限 7.3 访问其他程序中的数据 * 7.3.1 ContentRe ...

  8. 第一行代码学习笔记第五章——详解广播机制

    知识点目录 5.1 广播机制 5.2 接收系统广播 * 5.2.1 动态注册监听网络变化 * 5.2.2 静态注册实现开机广播 5.3 发送自定义广播 * 5.3.1 发送标准广播 * 5.3.2 发 ...

  9. 第一行代码学习笔记第九章——使用网络技术

    知识点目录 9.1 WebView的用法 9.2 使用HTTP协议访问网络 * 9.2.1 使用HttpURLConnection * 9.2.2 使用OkHttp 9.3 解析XML格式数据 * 9 ...

  10. 安卓教程----第一行代码学习笔记

    安卓概述 系统架构 Linux内核层,还包括各种底层驱动,如相机驱动.电源驱动等 系统运行库层,包含一些c/c++的库,如浏览器内核webkit.SQLlite.3D绘图openGL.用于java运行 ...

最新文章

  1. 手把手从零开始搭建k8s集群超详细教程
  2. AppCan用cookie实现记住密码功能 [APP]
  3. 网络管理员&MCSE2003之12: 第8章 应用管理模板和审核策略
  4. 涨知识!外贸中,船公司S/O(订舱单)文件英文解释!
  5. oracle database 12cr2 使用 dbms_stat 采集统计信息
  6. ASP.NET : Kerberos网络认证过程
  7. 分布式和微服务区别_深度解析spring cloud分布式微服务的实现
  8. layer之jquery 弹窗插件 (最后版本v1.8.5)
  9. python三种变量方式_python2.x 3种变量形式调用
  10. 在JSP中动态生成随机验证码,登录时后台校验验证码,以及如何避免同一个验证码被重复提交爆破密码...
  11. mysql自增主键查询及auto_increment修改。
  12. 微软发布Visual Studio Mac预览版
  13. 200行Python实现连连看辅助
  14. 比例尺分辨率转换(openlayers)
  15. Mac 右键的一些方法
  16. 恢复U盘分区:windows自带工具diskpart
  17. 解决Linux服务器时差问题
  18. 【科研学术】Typora之markdown公式,汇总,看这一篇就够了~
  19. EChat(简易聊天项目)二、好友列表实现
  20. MySql如何储存和获取ip地址?以及mysql储存和获取ip地址的底层实现原理!!

热门文章

  1. c51单片机烧录时显示正在检测目标单片机怎么处理?
  2. UNCTAD和阿里巴巴商学院启动面向亚洲企业家的互联网创业者计划
  3. 使用网线通过远程桌面实现局域网内快速传输文件
  4. POI导出Excel详细教程
  5. 视频批量去水印工具_一键去除视频水印
  6. PAT (Advanced Level) 1151——前序中序构造树+LCA+map ( Ps.数组开大点啊 )
  7. js 等待几秒 每隔几秒 执行
  8. 【IEEE专区】高分区、期刊高质量,评价高SCI
  9. jquery 实现聊天信息的实时展示
  10. 【2019.3】Mysql8.0免安装版本数据库配置问题修改密码