1. 程式人生 > >讀書筆記--《Python基礎教程第二版》--第七章 更加抽象

讀書筆記--《Python基礎教程第二版》--第七章 更加抽象

ja

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基礎教程第二版》--第七章 更加抽象