1.10Python基础10 反过头来看看

从最初的'hello world',走到面向对象。该回过头来看看,教程中是否遗漏了什么。
我们之前提到一句话,"Everything is Object(一切都是对象)"。那么我们就深入体验一下这句话。
需要先介绍两个内置函数,dir()help()
dir()用来查询一个类或者对象所有属性。你可以尝试一下

>>>print dir(list)

help()用来查询的说明文档。你可以尝试一下

>>>print helo(list)

list是一个类

在上面已经看到,表示Python已经定义好的一类。当我们新建一个表时,比如:

>>>n1 = [1,2,5,3,5]

实际上,n1是类list的一个对象。
实验一些list的方法:

>>>print n1.count(5)  # 计数,看总共有多少个5
>>>print n1.index(3)  # 查询n1的第一个3的下标
>>>n1.append(6)  # 在n1的最后增添一个新元素6
>>>n1.sort()  # 对n1的元素进行排序
>>>print n1,pop()  # 从n1中去除最后一个元素,并将该元素返回。
>>>n1.remove(2)  # 从n1中去除第一个2
>>>n1.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 a

print 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(列表)是一个类。
运算符是方法

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,793评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,567评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,342评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,825评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,814评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,680评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,033评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,687评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,175评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,668评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,775评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,419评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,020评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,206评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,092评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,510评论 2 343

推荐阅读更多精彩内容

  • 内置函数Python解释器内置了许多功能和类型,总是可用的。他们是按字母顺序列在这里。 abs(x)返回一个数的绝...
    uangianlap阅读 1,223评论 0 0
  • 标签: Python 引言:(文章比较长,建议看目录按需学习~) 以前刚学编程的时候就对Python略有耳闻,不过...
    coder_pig阅读 3,204评论 3 42
  • 网络全面入侵生活的年代,你还在老老实实做广告? 在餐饮圈,还有很多人缺乏对营销知识的全面理解,很多时候,都是因为看...
    今视直播阅读 386评论 0 0
  • 四月的风,软软的。四月的波,静静的。四月的情,柔柔的,四月的什川,万树齐放,花枝招展,白的似雪,洁...
    伊清欢阅读 336评论 4 9
  • 我们常把出类拔萃者树为人生的路灯。人生如灯,此言不假,人生就是不断地充电释放的循环往复过程。可这人生之灯也有讲究。...
    晴鹤1阅读 866评论 2 4