五一你加班了么坝疼?
1.加班費(fèi)計(jì)算
五一節(jié)快樂!有多少還在五一節(jié)加班的谆沃?曬曬你們的加班費(fèi)是多少钝凶?以小編為例,小編寫了兩篇1000字和2500字的稿件唁影,經(jīng)過計(jì)算之后耕陷,稿費(fèi)為300和450¥。計(jì)算代碼如下:
classpay_cal(object):
def__init__(self, num):
self.cal = num
defpay(self):
self.pay =200+self.cal /10
printself.pay
pay1 = pay_cal(1000)
pay2 = pay_cal(2500)
pay1.pay()
pay2.pay()
輸出:
300
450
不過這不是重點(diǎn)据沈,重點(diǎn)是今天要介紹一下“面向?qū)ο缶幊獭薄?/p>
2.面向?qū)ο缶幊毯喗?/h1>
1.OOP簡介(參考“笨辦法”學(xué)python)
Python本身是一種面向?qū)ο缶幊陶Z言哟沫。面向?qū)ο缶幊蹋∣bject-oriented programming, OOP)是一種計(jì)算機(jī)編程架構(gòu)。在python中锌介,有一種叫做“類”的結(jié)構(gòu)嗜诀,它可以使用一種特殊的方式編寫程序。通過使用類孔祸,能夠讓程序架構(gòu)更整齊隆敢,使用起來也會更方便。
2.面向?qū)ο蠛兔嫦蜻^程
與面向?qū)ο笳Z言相對應(yīng)的融击,是面向過程語言筑公。面向過程特點(diǎn)如下:
1).分析解決問題所需的步驟
2).用函數(shù)把這些步驟一步一步實(shí)現(xiàn)
3).使用時依次調(diào)用
而面向?qū)ο笫前褬?gòu)成問題事務(wù)分解成模塊雳窟,建立對象的目的不是為了完成一個步驟尊浪,而是為了描敘某個事物在整個解決問題的步驟中的行為。
3.舉個栗子
以AlphaGo圍棋程序?yàn)槔饩龋绻?b>面向過程來設(shè)計(jì)拇涤,會有以下幾個步驟:1.人類落子。2.判斷勝負(fù)誉结。3.機(jī)器落子鹅士。4.判斷勝負(fù)。5.人類落子惩坑。6.判斷勝負(fù)……依次調(diào)用掉盅,如此循環(huán)也拜。
如果按面向?qū)ο?/b>來設(shè)計(jì),將會變成三大模塊:1.人類落子系統(tǒng)趾痘。2.規(guī)則系統(tǒng):用于判斷勝負(fù)慢哈。3.機(jī)器落子系統(tǒng)。在游戲博弈時永票,人類落子后的結(jié)果卵贱,輸入到規(guī)則系統(tǒng)中,若不分勝負(fù)侣集,再調(diào)用機(jī)器落子系統(tǒng)键俱,機(jī)器落子后的結(jié)果,再返回到判斷勝負(fù)系統(tǒng)中世分,再進(jìn)行人類落子……這樣設(shè)置一個循環(huán)编振,即可完成流程。
所以面向?qū)ο缶幊坛袈瘢碚撋夏軌蚴钩绦蚋雍唵危?b>易于調(diào)用和維護(hù)党觅。
3.類的概念和語法
1.基本概念
類(class):是對象的集合,這些對象具有相同的屬性和方法斋泄。
對象(object):某個類的實(shí)例往湿。
實(shí)例(instance):類的具體對象。
屬性(attribute):通常是類中的一個變量蜓斧。
很暈有木有子库,打個比方,我想養(yǎng)一只寵物狗募胃,狗就可以當(dāng)成一個類旗唁。狗的品種有很多,例如哈士奇痹束,柴犬等等检疫,但是他們都有一個共性的地方,那就是會“汪汪”叫祷嘶∈合保“汪汪”的叫聲,就可以比作相同的屬性和方法论巍。我最終養(yǎng)了一只柴犬烛谊,把它取名叫做汪星人“Mr_wang”,這個“Mr_wang”就是一個實(shí)例嘉汰。而這只狗就相當(dāng)于一個對象丹禀。
將以上的例子轉(zhuǎn)換成代碼:
# -*- coding: UTF-8 -*-classdog(object):
#創(chuàng)建一個叫dog的類,屬于objectattr ='汪汪'#dog的類里有一個屬性叫attrdefbark(self):
#dog的類里有一個bark的方法self.attr ='汪汪汪'printself.attr
Mr_wang = dog()
#創(chuàng)建一個實(shí)例,叫做Mr_wang
printMr_wang.attr
#打印實(shí)例里的屬性attrMr_wang.bark()
輸出:
汪汪
汪汪汪
2.語法解釋
再來看看第一段代碼:
classpay_cal(object):
def__init__(self, num):
self.cal = num
defpay(self):
self.pay =200+self.cal /10
printself.pay
首先創(chuàng)建了一個類pay_cal双泪,它是object的一種持搜。這個類里,有兩個方法焙矛,第一個是初始化方法__init__朵诫,一旦創(chuàng)建實(shí)例,它便自動運(yùn)行薄扁,接收self和num作為參數(shù)剪返,完成初始化過程。這個方法中邓梅,還有一個變量脱盲,叫做self.cal,可以將num賦值給self.cal日缨。第二個pay方法基本無差钱反。
pay1 = pay_cal(1000)
pay2 = pay_cal(2500)
接著,將pay1和pay2分別設(shè)為類pay_cal的兩個實(shí)例匣距,并輸入?yún)?shù)1000和2500面哥。這個參數(shù)就被num接收,并賦值給self.cal毅待。
pay1.pay()
pay2.pay()
最后從pay1和pay2中調(diào)用pay()方法尚卫,結(jié)束程序。