成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

Python3.5中面向?qū)ο缶幊痰氖纠治?創(chuàng)新互聯(lián)

這篇文章給大家分享的是有關(guān)Python3.5中面向?qū)ο缶幊痰氖纠治龅膬?nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。

十多年建站經(jīng)驗(yàn), 網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)客戶(hù)的見(jiàn)證與正確選擇。成都創(chuàng)新互聯(lián)公司提供完善的營(yíng)銷(xiāo)型網(wǎng)頁(yè)建站明細(xì)報(bào)價(jià)表。后期開(kāi)發(fā)更加便捷高效,我們致力于追求更美、更快、更規(guī)范。

具體如下:

1、面向過(guò)程與面向?qū)ο蟮谋容^

(1)面向過(guò)程編程(procedural programming)

面向過(guò)程編程又被稱(chēng)為:top-down languages,程序從上到下 一步步執(zhí)行,從頭到尾的解決問(wèn)題。

基本設(shè)計(jì)思路為:程序一開(kāi)始是解決一個(gè)大問(wèn)題,然后把大問(wèn)題分解成多個(gè)小問(wèn)題或子過(guò)程,這些小問(wèn)題執(zhí)行的時(shí)候再繼續(xù)分解,

直到小問(wèn)題足夠簡(jiǎn)單到可以在一個(gè)小范圍內(nèi)解決。

缺點(diǎn):若程序要進(jìn)行修改,則修改的部分依賴(lài)的各個(gè)部分也要修改,這樣會(huì)發(fā)生一連串的影響,隨著程序越來(lái)越大,編程方式的維護(hù)難度也會(huì)越來(lái)越高。

所以,如果寫(xiě)一下簡(jiǎn)單的腳本,去做一些一次性的任務(wù),用面向過(guò)程的方式是極好的,如果要處理的任務(wù)是復(fù)雜的,且需要不斷迭代和維護(hù)的,還是用面向?qū)ο笫亲罘奖愕摹?/p>

(2)面向?qū)ο缶幊蹋╫op)

面向?qū)ο缶幊淌抢谩邦?lèi)”和“對(duì)象”來(lái)創(chuàng)建各種模型來(lái)實(shí)現(xiàn)對(duì)真實(shí)世界的描述。

優(yōu)點(diǎn):可以使程序的維護(hù)和擴(kuò)展變得簡(jiǎn)單,并且可以大大提高程序的開(kāi)發(fā)效率;另外,基于對(duì)象的程序編程,可以讓別人更加理解你的代碼邏輯,是團(tuán)隊(duì)開(kāi)發(fā)變得更加從容。

核心的特征:世界萬(wàn)物皆對(duì)象,世界萬(wàn)物皆可分類(lèi)。

a、類(lèi)(class)

類(lèi):是對(duì)一類(lèi)擁有相同屬性的對(duì)象的抽象、藍(lán)圖、原型。在類(lèi)中定義了這些對(duì)象都具備的屬性、共同的方法。

b、對(duì)象(object)

對(duì)象:類(lèi)實(shí)例化后的實(shí)例,一個(gè)類(lèi)必須經(jīng)過(guò)實(shí)例化方能在程序中調(diào)用。

一個(gè)類(lèi)可以實(shí)例化多個(gè)對(duì)象,每個(gè)對(duì)象可以有不同的屬性。人類(lèi)是指使用的人,每個(gè)人是指具體的對(duì)象。

c、封裝(encapsulation)

在類(lèi)中對(duì)數(shù)據(jù)的賦值、內(nèi)部調(diào)用對(duì)外部用戶(hù)是透明的,這使類(lèi)變成了一個(gè)膠囊或容器,里面包含著類(lèi)的數(shù)據(jù)和方法。

d、繼承(Inheritance)

一個(gè)類(lèi)可以派生出子類(lèi),在這個(gè)父類(lèi)里定義的屬性、方法自動(dòng)被子類(lèi)繼承。

e、多態(tài)(Polymorphism)

多態(tài):是面向?qū)ο蟮闹匾匦?簡(jiǎn)單點(diǎn)說(shuō):“一個(gè)接口,多種實(shí)現(xiàn)”,指一個(gè)基類(lèi)中派生出了不同的子類(lèi),

且每個(gè)子類(lèi)在繼承了同樣的方法名的同時(shí)又對(duì)父類(lèi)的方法做了不同的實(shí)現(xiàn),這就是同一種事物表現(xiàn)出的多種形態(tài)。

編程其實(shí)就是一個(gè)將具體世界進(jìn)行抽象化的過(guò)程,多態(tài)就是抽象化的一種體現(xiàn)。

把一系列具體事物的共同點(diǎn)抽象出來(lái), 再通過(guò)這個(gè)抽象的事物, 與不同的具體事物進(jìn)行對(duì)話(huà)。

多態(tài)允許將子類(lèi)的對(duì)象當(dāng)作父類(lèi)的對(duì)象使用,某父類(lèi)型的引用指向其子類(lèi)型的對(duì)象,調(diào)用的方法是該子類(lèi)型的方法。

這里引用和調(diào)用方法的代碼編譯前就已經(jīng)決定了,而引用所指向的對(duì)象可以在運(yùn)行期間動(dòng)態(tài)綁定。

2、面向?qū)ο缶幊?/strong>

(1)無(wú)論什么形式的編程,都要明確一下原則:寫(xiě)重復(fù)的代碼是非常不好的地級(jí)行為;之前寫(xiě)的代碼需要不斷的更新。

所以,開(kāi)發(fā)的程序要遵循易讀、易改的原則,即:可讀性好、易擴(kuò)展。

(2)示例代碼:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:ZhengzhengLiu

#面向?qū)ο?-CS游戲模擬

class Role(object):
  def __init__(self,name,role,weapon,life_value=100,money=15000):
    self.name = name
    self.role = role
    self.weapon = weapon
    self.life_value = life_value
    self.money = money

  def shot(self):
    print("shotting...")

  def got_shot(self):
    print("ah...%s got shot..." %self.name)

  def buy_gun(self,gun_name):
    print("%s just bought %s" %(self.name,gun_name))

r1 = Role("Jack","police","AK-47")  #實(shí)例化(初始化一個(gè)類(lèi),創(chuàng)建了一個(gè)對(duì)象)
r1.buy_gun("B51")

r2 = Role("Amy","terrorist","B22") 
r2.got_shot()

運(yùn)行結(jié)果:

Jack just bought B51
ah...Amy got shot...

注:

a、類(lèi)的基本定義

Python3.5中面向?qū)ο缶幊痰氖纠治?></p><p>第一句:定義一個(gè)類(lèi),class是定義類(lèi)的語(yǔ)法,Role是類(lèi)名,(object)是新式類(lèi)的寫(xiě)法,必須這樣寫(xiě);</p><p>第二句:<code>__init__()</code>叫做初始化方法,也叫構(gòu)造方法(雖然它是函數(shù)的形式,但在類(lèi)中就不叫函數(shù)了,叫做方法),在類(lèi)被調(diào)用時(shí)這個(gè)方法會(huì)自動(dòng)執(zhí)行,進(jìn)行一些初始化動(dòng)作,</p><p>所以__init__(self,name,role,weapon,life_value=100,money=15000)就是要在創(chuàng)建一個(gè)角色時(shí)給它設(shè)置這些屬性。</p><p>b、實(shí)例化:把一個(gè)類(lèi)變成一個(gè)具體的對(duì)象的過(guò)程叫實(shí)例化。</p><p><img src=Python3.5中面向?qū)ο缶幊痰氖纠治?創(chuàng)新互聯(lián)
文章鏈接:http://jinyejixie.com/article2/icpic.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營(yíng)銷(xiāo)推廣、用戶(hù)體驗(yàn)App設(shè)計(jì)、網(wǎng)站導(dǎo)航網(wǎng)站制作、軟件開(kāi)發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

万盛区| 新巴尔虎右旗| 铜鼓县| 乳源| 临清市| 衡阳县| 河曲县| 晋宁县| 荔浦县| 米林县| 永泰县| 青铜峡市| 闻喜县| 汤原县| 尚义县| 内江市| 巴东县| 通化县| 日喀则市| 德江县| 昔阳县| 南安市| 昭觉县| 贡觉县| 鹿泉市| 大城县| 全南县| 吉安市| 大足县| 邵阳县| 元阳县| 工布江达县| 岳池县| 泸州市| 黎川县| 亳州市| 密山市| 长海县| 天镇县| 嘉义市| 五华县|