面向對象-01
阿新 • • 發佈:2018-06-23
世界 info font TP 面向 查找 arr 實現 內容
一:創建類和對象
class f:
def bar(self):
print(‘bar‘)
def hello(self, name)
print(‘hello %s‘%name)
fobj = f()
fobj.bar() > ‘bar‘
fobj.hello(‘tom‘) >‘hello tom‘
ps:類中的第一個參數必須是self,類中定義的函數叫方法
二:面向對象三大特性--封裝
#三大特性:封裝、繼承、多態
1.封裝:
#將內容封裝到某處
#從某處調用被封裝的內容
例1:將內容封裝到某處
解析:self是一個形式參數,當執行 fobj = F(‘tom‘,18)時,self等於fobj
例2:從某處調用封裝的內容
調用封裝的內容時,有兩種情況:
#通過對象直接調用
#通過間接self調用
fobj = F(‘tom‘,18)
fobj.name >>> tom 調用fobj對象的name屬性
fobj.age >>> 18 調用fobj對象的age屬性
class F:
def __init__(self,name,age)
self.name = name
self.age = age
def hello(self):
print(self.name)
print(self.age)
fobj = F(‘tom‘,18)
fobj.hello()
>>> tom
>>> 18
要求如下:
1.打印汽車有4個輪子
2.打印汽車是紅色的
3.打印汽車牌子是奔馳
1.打印汽車有8個輪子
2.打印汽車是白色的
3.打印汽車牌子是寶馬
#函數式編程:
def carr(num):
print(‘汽車有%s個輪子‘%num)
def color(col):
print(‘汽車是%s色‘ %col)
def brand(bran):
print(‘汽車牌子是%‘%bran)
調用:
carr(4)
color(‘紅色‘)
brand(‘奔馳‘)
carr(8)
color(‘白色‘)
brand(‘寶馬‘)
#面向對象編程
class F:
def __init__(self, carr, color, bran):
self.carr = carr
self.color = color
self.bran = bran
def carr(self):
print(‘汽車有%s個輪子‘%self.carr)
def color(col):1
print(‘汽車是%s色‘ %self.color)
def brand(bran):
print(‘汽車牌子是%‘%self.bran)
fobj1 = F(4,‘紅色‘,‘奔馳‘)
fobj1.carr()
fobj1.color()
fobj1.brand()
fobj2 = F(8,‘白色‘,‘寶馬‘)fobj1.carr()
fobj1.color()
fobj1.brand()
三.1:面向對象的三大特性--繼承
#繼承:面向對象中的繼承和現實世界的繼承相同,即:子可以繼承父的內容
例子:
#貓
class cat:
def voice(self):
print(‘喵~~~~‘)
def eat(self):
print(‘吃‘)
def drink(self):
print(‘喝‘)
def pull(self):
print(‘拉‘)
#狗
class dog:
def voice(self):
print(‘汪~~~~‘)
def eat(self):
print(‘吃‘)
def drink(self):
print(‘喝‘)
def pull(self):
print(‘拉‘)由此看出,貓和狗都具備了相同的 吃、喝、拉的功能,只有叫聲不同,那麽可以利用繼承的思想,將這些相同的功能進行提煉出來:
#動物
class Animals:
def eat(self):
print(‘吃‘)
def drink(self):
print(‘喝‘)
def pull(self):
print(‘拉‘)
#貓
class cat(Animals):
def voice(self):
print(‘喵~~~~~‘)
class dog(Animals):
def voice(self):
print(‘汪~~~~‘)
cat = cat()
cat.eat() >>> 吃
cat.drink() >>> 喝
cat.pull() >>> 拉
由此可見,父類將相同的方法進行整合,子類僅需繼承父類就可以獲得這些方法而不必一一去實現每個方法
三.2: 多繼承:
#繼Python可以繼承多個類
#Python的類如果繼承了多個類,那麽尋找方法的方式有兩種:深度優先和廣度優先
#當類是經典類時,多繼承,優先按照深度優先方式查找
#當類是新式類時,多繼承,優先按照廣度優先方式查找
面向對象-01