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