Python面向對象
阿新 • • 發佈:2017-06-16
self. 面向對象 init self foo pri cat cnblogs 執行
面向對象三大特性
一、封裝
#1.將內容封裝到某處
#創建類 class Foo: def __init__(self,name,age): #稱為構造方法,根據類創建對象時自動執行 self.name=name self.age=age #根據類Foo創建對象 #自動執行Foo類的__init__方法 obj1=Foo("wupeiqi",18) #將wupeiqi和18分別封裝到obj1(即self)的name和age的屬性中 obj2=Foo(‘alex‘,73)
#2.從某處調用封裝的內容
#2.1通過對象直接調用被封裝的內容
classFoo(): def __init__(self,name,age): #稱為構造方法,根據類創建對象時自動執行 self.name=name self.age=age obj1= Foo(‘wupeiqi‘,18) print(obj1.name) print(obj1.age) obj2=Foo(‘alex‘,73) print(obj2.name) print(obj2.age)
#2.2通過self間接調用
class Foo(): def __init__(self,name,age): #稱為構造方法,根據類創建對象時自動執行self.name=name self.age=age def detail(self): print(self.name) print(self.age) obj1=Foo(‘wupeiqi‘,18) obj1.detail() #python默認將obj1傳給self參數,即obj1.detail(obj1),所以此時方法內部的self=obj1,即:self.name是wupeiqi;self.age是18 obj2=Foo(‘alex‘,73) obj2.detail()
二、繼承
#繼承
# 動物:吃、喝、拉、撒
#
# 貓:喵喵叫(貓繼承動物的功能)
#
# 狗:汪汪叫(狗繼承動物的功能)
class Animal: def eat(self): print(‘%s吃‘%self.name) def drink(self): print(‘%s喝‘%self.name) def shit(self): print(‘%s拉‘%self.name) def pee(self): print(‘%s撒‘%self.name) class Cat(Animal): def __init__(self,name): self.name=name self.breed=‘貓‘ def cry(self): print(‘喵喵叫‘) class Dog(Animal): def __init__(self,name): self,name=name self.dreed=‘狗‘ def cry(self): print(‘汪汪叫‘) #############執行############## c1=Cat(‘小白家的小黑貓‘) c1.eat() c2=Cat(‘小黑家的小白貓‘) c2.drink() d1=Dog(‘胖子家的小痩狗‘) d1.eat()
三、多態
Python面向對象