欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python面向?qū)ο笏枷肱c應用入門教程【類與對象】

 更新時間:2019年04月12日 10:49:11   作者:微信1257309054  
這篇文章主要介紹了Python面向?qū)ο笏枷肱c應用,較為詳細的分析了Python面向?qū)ο笏枷肱c原理,并結(jié)合實例形式分析了類與對象相關定義、用法及操作注意事項,需要的朋友可以參考下

本文實例講述了Python面向?qū)ο笏枷肱c應用。分享給大家供大家參考,具體如下:

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

1、面向?qū)ο蟮脑O計思想

面向?qū)ο笫腔谌f物皆對象這個哲學觀點。

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

面向過程

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

面向?qū)ο?/p>

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

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

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

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

類和對象

1、類和對象的概念

類:一個具有特殊功能的實體的集合[群體]。

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

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

舉例:

學生 張三、李四
快遞 順豐、韻達

總結(jié):

類與對象的關系:

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

2、類的定義

格式:

class 類名(object):
​ 類體

說明:

a.python中使用class關鍵字定義類;

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

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

演示

# 一個簡單的類的實例
class Person():
  print("hello")

3、類的設計

只需要關心3樣東西

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

類中的方法和屬性

1、方法和屬性的定義

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

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

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

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

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

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

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

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

2、方法和屬性的使用

2.1、實例化對象:

前面說過,對象是實實在在的個體,負責去完成某件指定的事情。

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

語法:

對象名 = 類名()

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

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

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

總結(jié):

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

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

per = Person()

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

綜合練習:

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

#學生類
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("廣場舞跳起來...")
  def lie(self):
    print("我家特別窮,我小時候就一直在放牛,只有幾萬頭....")
# 類實例化
stu = Student()
# 成員方法調(diào)用
stu.introduce('ldc',18,'跑步')
stu.singsong()
stu.dance()
stu.lie()

輸出:

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

如何查看所有屬性和方法

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

輸出:

True True False
測試2

更多關于Python相關內(nèi)容感興趣的讀者可查看本站專題:《Python面向?qū)ο蟪绦蛟O計入門與進階教程》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python編碼操作技巧總結(jié)》及《Python入門與進階經(jīng)典教程

希望本文所述對大家Python程序設計有所幫助。

相關文章

  • 跟老齊學Python之從if開始語句的征程

    跟老齊學Python之從if開始語句的征程

    前面做了很多鋪墊了,真正的編程我們還沒有講過,各位童鞋也許早就不耐煩了,好吧,今天我們就從if語句來踏上我們的征程
    2014-09-09
  • python中的隨機函數(shù)random的用法示例

    python中的隨機函數(shù)random的用法示例

    這篇文章主要介紹了python中的隨機函數(shù)random的用法示例,詳細的介紹了python 隨機函數(shù)random的用法和示例,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • Django restful framework生成API文檔過程詳解

    Django restful framework生成API文檔過程詳解

    這篇文章主要介紹了Django restful framework生成API文檔過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-11-11
  • python中的閉包用法實例詳解

    python中的閉包用法實例詳解

    這篇文章主要介紹了python中的閉包用法,以實例形式詳細分析了Python中閉包的概念及相關使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-05-05
  • Python?類中定義多個構(gòu)造器方法重載與泛方法

    Python?類中定義多個構(gòu)造器方法重載與泛方法

    這篇文章主要為大家介紹了Python?類中定義多個構(gòu)造器方法重載與泛方法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03
  • python通過TimedRotatingFileHandler按時間切割日志

    python通過TimedRotatingFileHandler按時間切割日志

    這篇文章主要介紹了python通過TimedRotatingFileHandler按時間切割日志的方法,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-07-07
  • Django+Uwsgi+Nginx如何實現(xiàn)生產(chǎn)環(huán)境部署

    Django+Uwsgi+Nginx如何實現(xiàn)生產(chǎn)環(huán)境部署

    這篇文章主要介紹了Django+Uwsgi+Nginx如何實現(xiàn)生產(chǎn)環(huán)境部署,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-07-07
  • pytorch 搭建神經(jīng)網(wǎng)路的實現(xiàn)

    pytorch 搭建神經(jīng)網(wǎng)路的實現(xiàn)

    這篇文章主要介紹了pytorch 搭建神經(jīng)網(wǎng)路,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • 最新評論