溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python面向?qū)ο笏枷肱c應(yīng)用的示例分析

發(fā)布時(shí)間:2021-08-26 11:14:02 來源:億速云 閱讀:118 作者:小新 欄目:開發(fā)技術(shù)

這篇文章主要介紹了Python面向?qū)ο笏枷肱c應(yīng)用的示例分析,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

面向?qū)ο笏枷?/strong>

1、面向?qū)ο蟮脑O(shè)計(jì)思想

面向?qū)ο笫腔谌f物皆對(duì)象這個(gè)哲學(xué)觀點(diǎn)。

2、面向?qū)ο蠛兔嫦蜻^程的區(qū)別

面向過程

在生活中:
它是一種看待問題的思維方式,在思考問題的時(shí)候,著眼問題是怎樣一步一步解決的,然后親力親為去解決問題[類似于公司里的執(zhí)行者]。
在程序中:
代碼是從上而下順序執(zhí)行,各個(gè)模塊之間的關(guān)系盡可能簡(jiǎn)單,在功能上相對(duì)獨(dú)立,程序的流程在寫程序的時(shí)候就已經(jīng)決定。

面向?qū)ο?/p>

在生活中:
它是另一種看待問題的方式,它著眼于找到一個(gè)具有特殊功能的個(gè)體,然后委托這個(gè)個(gè)體去幫你完成某件事.這更符合人類思考習(xí)慣的思想[指揮者]。
在程序中:
把數(shù)據(jù)以及對(duì)數(shù)據(jù)的操作方法放在一起,作為一個(gè)相互依存的整體–對(duì)象;
把同類的對(duì)象進(jìn)行抽象出其共性,形成類;
類中大多數(shù)數(shù)據(jù),只能用本類的方法進(jìn)行處理;
類通過一個(gè)簡(jiǎn)單的外部接口與外界發(fā)生關(guān)系,對(duì)象與對(duì)象之間通過消息進(jìn)行通信;
程序執(zhí)行的流程由用戶在使用的過程中決定;
使用面向?qū)ο笏枷脒M(jìn)行開發(fā),需要先找到具有所需功能的對(duì)象來使用,如果這個(gè)對(duì)象不存在,那么則需要?jiǎng)?chuàng)建這么一個(gè)具有所需功能的對(duì)象。
注意:面向?qū)ο笾皇且环N思想,并不是一門編程語言。

區(qū)別總結(jié)

a. 都是看待問題的一種思維方式,都能解決問題;
b. 面向過程著眼于所有的事情親力親為;
c. 面向?qū)ο笾塾谡业揭粋€(gè)具有特殊功能的對(duì)象,委托這個(gè)對(duì)象實(shí)現(xiàn)你需要實(shí)現(xiàn)的功能。

python語言是面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,類和對(duì)象是面向?qū)ο蟮暮诵摹?/p>

類和對(duì)象

1、類和對(duì)象的概念

類:一個(gè)具有特殊功能的實(shí)體的集合[群體]。

對(duì)象:在一個(gè)類中,一個(gè)具有特殊功能的實(shí)體,能夠幫忙解決特定的問題,對(duì)象通常也被稱為實(shí)例。

兩者之間的關(guān)系:類用于描述某一對(duì)象的共同特征,而對(duì)象則是類的具體存在。

舉例:

學(xué)生 張三、李四
快遞 順豐、韻達(dá)

總結(jié):

類與對(duì)象的關(guān)系:

a.類是對(duì)象的抽象,對(duì)象是類的具體體現(xiàn)。
b.類也是一種數(shù)據(jù)類型,只不過是自己定義的,類似與number,string等,它本身并不占用空間,但是它的實(shí)例[對(duì)象]是占用空間的。

2、類的定義

格式:

class 類名(object):
 類體

說明:

a.python中使用class關(guān)鍵字定義類;

b.類名只要是一個(gè)合法的標(biāo)識(shí)符即可,命名規(guī)則遵循”大駝峰式命名”【每個(gè)單詞的首字母大寫】;

c.盡量使用單個(gè)或者多個(gè)有意義的單詞連接而成

演示

# 一個(gè)簡(jiǎn)單的類的實(shí)例
class Person():
  print("hello")

3、類的設(shè)計(jì)

只需要關(guān)心3樣?xùn)|西

1.事物名稱[類名]: 如人類 (Person);
2.特征(屬性): 如身高(height) 年齡(age)等 ——>名詞;
3.行為(方法): 如跑(run) 說話(say) —————>動(dòng)詞。

類中的方法和屬性

1、方法和屬性的定義

生活中描述事物的無非就是描述事物的特征和行為。

python中用類來描述事物也是如此,前面已經(jīng)定義了類,但是,如果只有類單獨(dú)存在,沒有任何意義,所以定義類其實(shí)就是定義類中的成員[成員變量和成員方法]。

在類中的變量我們稱之為成員變量,在類中的方法我們稱之為成員方法(函數(shù))。

成員變量—>類具有的特征 例如:人—>身高,性別,體重。

成員方法 —>類具有的行為 例如人—>吃喝玩樂。

因此,擁有相同的(或者類似)屬性和行為的對(duì)象都可以抽取出一個(gè)類。

class Persion():
  #成員變量,初始值就是相當(dāng)于默認(rèn)值
  name = ""
  age = 0
  height = 0
  weight = 0
  #成員方法
  #在類的內(nèi)部,使用def關(guān)鍵字來定義的一個(gè)方法
  #注意:區(qū)別于普通方法,類中方法的參數(shù)必須包含參數(shù)self,且為第一個(gè)參數(shù)
  #self代表類的實(shí)例(某個(gè)對(duì)象)
  def run(self):
    print("run")
  def eat(self, food):
    print("eat",food)
  def sleep(self):
    print("sleeping")

說明:定義了類,并在類中定義了成員變量和成員方法,但是成員變量和成員方法是如何使用的呢?

2、方法和屬性的使用

2.1、實(shí)例化對(duì)象:

前面說過,對(duì)象是實(shí)實(shí)在在的個(gè)體,負(fù)責(zé)去完成某件指定的事情。

對(duì)象的創(chuàng)建的過程又被稱作對(duì)象的實(shí)例化過程。

語法:

對(duì)象名 = 類名()

'''
實(shí)例化對(duì)象
格式: 對(duì)象名 = 類名()
注意: 沒有參數(shù)的時(shí)候,小括號(hào)也不能省略
'''
#實(shí)例化一個(gè)對(duì)象
pre1 = Person()
print(pre1)
print(type(per1))
print(id(per1))
per2 = Person()
print(per2)
print(type(per2))
print(id(per2))

3、對(duì)象調(diào)用方法和屬性

per = Preson()
'''
訪問屬性
格式:對(duì)象名.屬性名
賦值:對(duì)象名.屬性名 = 新值
'''
per.name = 'lili'
per.age = 18
per.height = 160
per.weight = 80
print(per.name, per.age, per.height, per.weight)
'''
訪問方法
格式:對(duì)象名.方法名(參數(shù)列表)
'''
per.run()
per.eat("apple")
per.sleep()
#問題:目前來看Person創(chuàng)建的所有對(duì)象屬性都是一樣的
per2 = Person()
print(per2.age)
per3 = Person()
print(per3.age)

總結(jié):

訪問變量采用: 對(duì)象名.屬性名;
訪問方法采用: 對(duì)象名.方法名(參數(shù)列表)。

4、內(nèi)存中的對(duì)象

per = Person()

說明:程序中定義Person類型的變量per實(shí)際是一個(gè)變量名,它被存放在棧內(nèi)存中,它指向?qū)嶋H的Person對(duì)象,而真正的Person對(duì)象則存放在堆內(nèi)存中。

綜合練習(xí):

第一天開學(xué),介紹一下你自己其中包括姓名,年齡以及愛好

#學(xué)生類
class Student():
  #特征:成員變量
  self.name = ""
  self.age = ""
  self.hobby =""
  def introduce(self,name, age, hobby):
    print("大家好,我是%s,今年%d歲,愛好是%s"%(name,age, hobby))
  def singsong(self):
    print("娘子~啊哈")
  def dance(self):
    print("廣場(chǎng)舞跳起來...")
  def lie(self):
    print("我家特別窮,我小時(shí)候就一直在放牛,只有幾萬頭....")
# 類實(shí)例化
stu = Student()
# 成員方法調(diào)用
stu.introduce('ldc',18,'跑步')
stu.singsong()
stu.dance()
stu.lie()

輸出:

大家好,我是ldc,今年18歲,愛好是跑步
娘子~啊哈
廣場(chǎng)舞跳起來...
我家特別窮,我小時(shí)候就一直在放牛,只有幾萬頭....

如何查看所有屬性和方法

class Test():
  def __init__(self,name):
    self.name = name
  def test(self):
    print('testing...')
test = Test('測(cè)試')
# 查看所有屬性和方法
list1 = dir(test)
# 檢查實(shí)例是否有這個(gè)屬性
print(hasattr(test, 'name'),hasattr(test, 'test'),hasattr(test, 'tt'))
# 設(shè)置屬性值
setattr(test,'name','測(cè)試2')
# 獲取屬性值
print(getattr(test, 'name'))

輸出:

True True False
測(cè)試2

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“Python面向?qū)ο笏枷肱c應(yīng)用的示例分析”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI