天池python訓練營Day08

2021-10-09 10:17:31 字數 4417 閱讀 5755

物件導向程式設計是最有效的軟體編寫方法之一,而類具備這種靈活性.

面向過程程式設計,看重的是解決問題的過程。

面向過程: 程式設計主要用到的是「函式」知識,將每個過程步驟打包成函式,再依次呼叫

建立類

類名一般首字母要大寫

// a code block

# 語法:建立乙個名為「classname」的類,類名一般首字母要大寫,(): 不能丟

class classname():

# 如定義乙個名為'狗'的類,可以寫成class dog():

# 規範:class語句後續的**塊要縮排

def function1():

# 定義類中的函式1

var foo = 'bar';

既然【類】是乙個函式包,所以乙個類中可以放置一堆函式

// a code block

class lucky():

def tuple0(self): #self用於關聯類與函式間的聯絡,self的取值不是唯一的,你也可以取name這種,但是在python界幾乎預設self,所以為了規範化還是用self

print('時光易逝,年華不再')

def set0(self):

print('越努力越幸運')

def kay0(self):

print('越難的事,越有意義')

def conten(self):

print('時光易逝,只爭朝夕')

k=lucky() #啟動類需要例項化,這就是也self關聯到的,有self才能例項化

k.tuple0()

k.set0()

k.kay0()

k.conten()

var foo = 'bar';

// an highlighted block

時光易逝,年華不再

越努力越幸運

越難的事,越有意義

時光易逝,只爭朝夕

var foo =

'bar'

;

繼承:子類自動共享父類之間資料和方法的機制

// a code block

class mylist(list):

pass #表示什麼也不幹

lst = mylist([1,5,2,7,8])

lst.sort() #sort()函式表示對列表進行排列

print(lst)

var foo = 'bar';

// an highlighted block[1

,2,5

,7,8

,9]var foo =

'bar'

;

多型:不同物件對同一方法響應不同的行動

// a code block

class animal:

def run(self): #同過run的例項化控制下面的子類

raise attributeerror('子類必須實現這個方法')

class people(animal):

def run(self):

print('人正在走')

class pig(animal):

def run(self):

print('pig is walking')

class dog(animal):

def run(self):

print('dog is running')

def func(animal):

animal.run()

func(pig())

# pig is walking

var foo = 'bar';

// an highlighted block

pig is walking

var foo =

'bar'

;

類的方法與普通的函式只有乙個特別的區別 —— 它們必須有乙個額外的第乙個引數名稱(對應於該例項,即該物件本身),按照慣例它的名稱是 self。在呼叫方法時,我們無需明確提供與引數 self 相對應的引數

// a code block

class ball:

def setname(self, name):

self.name = name

def kick(self):

print("我叫%s,該死的,誰踢我..." % self.name)

a = ball()

a.setname("球a")

b=ball()

name=input('可用input函式設定手動輸入:')

b.setname(name)

a.kick()

b.kick()

var foo = 'bar';

// an highlighted block

我叫球a

,該死的,誰踢我...

我叫李海,該死的,誰踢我...

var foo =

'bar'

;

python 的魔法方法

據說,python 的物件天生擁有一些神奇的方法,它們是物件導向的 python 的一切…

它們是可以給你的類增加魔力的特殊方法…

如果你的物件實現了這些方法中的某乙個,那麼這個方法就會在特殊的情況下被 python 所呼叫,而這一切都是自動發生的…

類有乙個名為__init__(self[, param1, param2…])的魔法方法,該方法在類例項化時會自動呼叫。

// a code block

class ball:

def __init__(self, name):

self.name = name

def kick(self):

print("我叫%s,該死的,誰踢我..." % self.name)

def lucky(self):

print("我叫%s,該死的,誰踢我..." % self.name) #可設定多個,靈活應用

a = ball("球a")

b = ball("球b")

a.kick()

# 我叫球a,該死的,誰踢我...

b.lucky()

# 我叫球b,該死的,誰踢我...

var foo = 'bar';

// an highlighted block

我叫球a

,該死的,誰踢我...

我叫球b

,該死的,誰踢我...

var foo =

'bar'

;

繼承

編寫類時,不一定需要從新開始寫。如果你要編寫兩個類時,資料之間可以互相用,可以使用繼承。乙個類繼承另乙個類時,他將自動獲得另乙個類的屬性和方法,原有的稱為父類,新的稱為子類。子類繼承父類的所有屬性和方法,同時還可以定義自己的屬性和方法.

// a code block

class 基礎機械人():

def __init__(self,引數):

self.姓名 = 引數

def 自報姓名(self):

print('我是' + self.姓名 + '!')

def 賣萌(self):

print('主人,求抱抱!')

class 高階機械人(基礎機械人):

def 自報姓名(self):

print('我是高階機械人' + self.姓名 + '!')

def 賣萌(self):

print('主人,每次想到怎麼欺負你的時候,就感覺自己全身biubiubiu散發著智慧型的光芒!')

#1安迪=基礎機械人('安迪')

安迪.自報姓名()

安迪.賣萌()

#2安迪 = 高階機械人('安迪') #同一資料的不同應用

安迪.自報姓名()

安迪.賣萌()

var foo = 'bar';

// an highlighted block

#1我是安迪!

主人,求抱抱!

#2我是高階機械人安迪!

主人,每次想到怎麼欺負你的時候,就感覺自己全身biubiubiu散發著智慧型的光芒!

var foo =

'bar'

;

阿里雲天池Python訓練營 學習day06

python 中set與dict類似,也是一組key的集合,但不儲存value。由於key不能重複,所以,在set中,沒有重複的key。注意,key為不可變型別,即可雜湊的值。num print type num num print type num 從結果發現集合的兩個特點 無序 unordere...

天池python訓練營Day4

學習python過程中我們會遇到大量的資料,這時候列表就可以發揮它的作用,儲存大量資料,讓計算機去讀取和操作.a code block list i 小軍 小紅 小李 小軍 小紅 小李 是乙個列表,小紅 等是列表裡的元素 var foo bar 從列表裡提取元素 a code block list ...

天池python訓練營Day05

天池python訓練營day05 字串 字串就是一系列字元,在python中,用引號括起的是字串,其中的引號可以是單引號,也可以是雙引號,如下所示 a code block 字串樣式 the sun is shining brightly the sun is shining brightly 字串...