Python基础10 反过头来看看
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢!
从最初的“Hello World”,走到面向对象。该回过头来看看,教程中是否遗漏了什么。
我们之前提到一句话,"Everything is Object". 那么我们就深入体验一下这句话。
需要先要介绍两个内置函数,dir()和help()
dir()用来查询一个类或者对象所有属性。你可以尝试一下
>>>print dir(list)
help()用来查询的说明文档。你可以尝试一下
>>>print help(list)
(list是Python内置的一个类,对应于我们之前讲解过的列表)
list是一个类
在上面以及看到,表是Python已经定义好的一个类。当我们新建一个表时,比如:
>>>nl = [1,2,5,3,5]
实际上,nl是类list的一个对象。
实验一些list的方法:
>>>print nl.count(5) # 计数,看总共有多少个5
>>>print nl.index(3) # 查询 nl 的第一个3的下标
>>>nl.append(6) # 在 nl 的最后增添一个新元素6
>>>nl.sort() # 对nl的元素排序
>>>print nl.pop() # 从nl中去除最后一个元素,并将该元素返回。
>>>nl.remove(2) # 从nl中去除第一个2
>>>nl.insert(0,9) # 在下标为0的位置插入9
总之,list是一个类。每个列表都属于该类。
Python补充中有list常用方法的附录。
运算符是特殊方法
使用dir(list)的时候,能看到一个属性,是__add__()。从形式上看是特殊方法(下划线,下划线)。它特殊在哪呢?
这个方法定义了"+"运算符对于list对象的意义,两个list的对象相加时,会进行的操作。
>>>print [1,2,3] + [5,6,9]
运算符,比如+, -, >, <, 以及下标引用[start:end]等等,从根本上都是定义在类内部的方法。
尝试一下
>>>print [1,2,3] - [3,4]
会有错误信息,说明该运算符“-”没有定义。现在我们继承list类,添加对"-"的定义
class superList(list):def __sub__(self, b):a = self[:] # 这里,self是supeList的对象。由于superList继承于list,它可以利用和list[:]相同的引用方法来表示整个对象。b = b[:] while len(b) > 0:element_b = b.pop()if element_b in a:a.remove(element_b)return aprint superList([1,2,3]) - superList([3,4])
内置函数len()用来返回list所包含的元素的总数。内置函数__sub__()定义了“-”的操作:从第一个表中去掉第二个表中出现的元素。如果__sub__()已经在父类中定义,你又在子类中定义了,那么子类的对象会参考子类的定义,而不会载入父类的定义。任何其他的属性也是这样。
(教程最后也会给出一个特殊方法的清单)
定义运算符对于复杂的对象非常有用。举例来说,人类有多个属性,比如姓名,年龄和身高。我们可以把人类的比较(>, <, =)定义成只看年龄。这样就可以根据自己的目的,将原本不存在的运算增加在对象上了。
下一步
希望你已经对Python有了一个基本了解。你可能跃跃欲试,要写一些程序练习一下。这会对你很有好处。
但是,Python的强大很大一部分原因在于,它提供有很多已经写好的,可以现成用的对象。我们已经看到了内置的比如说list,还有tuple等等。它们用起来很方便。在Python的标准库里,还有大量可以用于操作系统互动,Internet开发,多线程,文本处理的对象。而在所有的这些的这些的基础上,又有很多外部的库包,定义了更丰富的对象,比如numpy, tkinter, django等用于科学计算,GUI开发,web开发的库,定义了各种各样的对象。对于一般用户来说,使用这些库,要比自己去从头开始容易得多。我们要开始攀登巨人的肩膀了。
谢谢你的关注,
欢迎来到Python的世界。
总结
len() dir() help()
数据结构list(列表)是一个类。
运算符是方法
Python基础10 反过头来看看相关推荐
- 猪行天下之Python基础——10.1 Python常用模块(上)
内容简述: 1.time和datetime模块 2.logging模块 PS:如果你想搜索安装某个模块或者发布一个自己的模块可以到移步到:pypi.org/ 1.time和datetime时间模块 ① ...
- Python基础(10) - 异常
Python 异常:程序出现了错误而在正常控制流以外采取的行为 Python中常见的异常: 1. NameError:尝试访问一个未声明的变量 >>> something Trace ...
- python中for循环语句格式_Python基础-10循环语句
Python Python开发 Python语言 Python基础-10循环语句 10.循环语句 对于循环语句,Python仅提供了while和for两个,并未像其他编程语言一样提供for...eac ...
- python链表添加多个值_Python基础10之数据结构(下)
我的施工之路 上图施工计划,已完成专题: 1.数字专题 2.字符串专题 3.列表专题 4.流程控制专题 5.编程风格专题 6.函数使用专题 7.面向对象编程(上篇) 8.面向对象编程(下篇) 9.Py ...
- 【Python基础】python必会的10个知识点
来源 | Towards Data Science 作者 | Soner Yildirim 编译 | VK Python在数据科学生态系统中占据主导地位.我认为,占据主导地位的两大原因是相对容易学习和 ...
- Python基础day05 作业解析【10道 函数作业题】
视频.源码.课件.软件.笔记:超全面Python基础入门教程[十天课程]博客笔记汇总表[黑马程序员] Python基础day04[函数(定义与调用.文档说明.传参函数.全局变量.返回值.嵌套调用)] ...
- android代码apkxiazai1,Android基础新手教程——1.10 反编译APK获代替码amp;资源(示例代码)...
Android基础新手教程--1.10 反编译APK获代替码&资源 标签(空格分隔): Android基础新手教程 本节引言: "反编译Apk".看上去好像好像非常高端的样 ...
- python基础笔记,超详细,包含面向对象基础,爬虫实战【持续更新中...】
前言: 本笔记中的函数和方法同义,面向python3 本笔记部分概念及代码由newbing搜集整理得出 本笔记适合有一定其他编程语言基础的同学,因为笔记中省略了部分基础概念(比如整型,浮点型等基本数据 ...
- 刻意练习:Python基础 -- Task11. 魔法方法
背景 我们准备利用17天时间,将 "Python基础的刻意练习" 分为如下任务: Task01:变量.运算符与数据类型(1day) Task02:条件与循环(1day) Task0 ...
最新文章
- c语言建立线性表(顺序储存,链式储存,循环,双向)全
- 【深度学习】数据降维方法总结
- role menu for SAP_UI2_ADMIN_700
- 用户名错误则一直登录
- 网络数据抓包分析工具Debookee 8 for Mac
- linux安装字体库(simSun为例)
- 常用装机必备(绿色免安装软件合集):破解高手菜鸟必备(每日更新总有一款适合您
- php ppt read_PHP如何读取PPT?
- 日常网页bug页面收集
- 在 Half-Life MOD 中创建自己的武器及弹药
- 大强考研英语词汇5500课
- 理论力学---广义坐标和广义力
- 王者荣耀服务器不稳定,王者荣耀延迟460?可能是这六个原因导致的
- setting中的各种设置
- 2021全国大学生电子设计竞赛A题
- 引用网络jQuery地址
- Windows操作系统克隆账户
- 港科夜闻丨世界年轻大学排名公布,香港科大蝉联榜首
- sdcms php源码,Sdcms - 源码下载|Windows编程|其他小程序|源代码 - 源码中国
- 视频格式转换器怎样使用?