读书笔记--《Python基础教程第二版》--第七章 更加抽象

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了读书笔记--《Python基础教程第二版》--第七章 更加抽象相关的知识,希望对你有一定的参考价值。

7.1 对象的魔力

  多态 不同的类的对象使用同样的操作

  封装

  继承


7.1.1 多态

  1、多态和方法

 >>>object.getPrice()

 

>>> ‘abc‘.count(‘a‘)

1

>>> [1,2,‘a‘].count(‘a‘)

1


>>> from random import choice

>>> x=choice([‘Hello world!‘,[1,2,‘e‘,‘e‘,4]])

>>> x.count(‘e‘)

1

>>> x=choice([‘Hello world!‘,[1,2,‘e‘,‘e‘,4]])

>>> x.count(‘e‘)

2


python的多态不需要做类型检测,只要有相同的方法就行,python的多态其实有点像java的函数重载


>>> def add(x,y):

...   return x + y

... 

>>> add(1,2)

3

>>> add(‘Fish‘,‘License‘)

‘FishLicense‘

>>> def length_message(x):

...   print "The length of",repr(x),"is",len(x)

... 

>>> length_message(‘Fnord‘)

The length of ‘Fnord‘ is 5

>>> length_message([1,2,3])

The length of [1, 2, 3] is 3



很多系统函数和运算符都是多态的

唯一能够销毁多态的就是使用函数显示做类型检测,比如type,isinstance、issubclass,但是尽量避免消除



7.1.2 封装

7.1.2 继承

7.2 类和类型

7.2.1 类到底是什么

7.2.2 创建自己的类


class Person:

  def setName(self,name):

    self.name=name

  def getName(self):

    return self.name

  def greet(self):

    print "Hello world! I‘m %s" % self.name


>>> foo=Person()

>>> bar=Person()

>>> foo.setName(‘Luke Skywalker‘)

>>> bar.setName(‘Anakin Skywaler‘)

>>> foo.greet()

Hello world! I‘m Luke Skywalker

>>> bar.greet()

Hello world! I‘m Anakin Skywaler


self 表示对象本身的引用



>>> foo.name

‘Luke Skywalker‘

>>> bar.name

‘Anakin Skywaler‘


>>> bar.name=‘Yoda‘

>>> bar.greet()

Hello world! I‘m Yoda



7.2.3 特性、函数和方法


本文出自 “小鱼的博客” 博客,谢绝转载!

以上是关于读书笔记--《Python基础教程第二版》--第七章 更加抽象的主要内容,如果未能解决你的问题,请参考以下文章

读书笔记--《Python基础教程第二版》--第六章 抽象

读书笔记--《Python基础教程第二版》--第十章 充电时刻

读书笔记--《Python基础教程第二版》--第2章列表和元组

读书笔记--《Python基础教程第二版》--第十一章 文件和素材

读书笔记--《Python基础教程第二版》-- 第五章 条件循环和其他语句

读书笔记--《Python基础教程第二版》-- 第四章 字典:当索引不好用时