日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

Python面向?qū)ο缶幊獭惻c對(duì)象

系統(tǒng) 1760 0

Python面向?qū)ο缶幊獭惻c對(duì)象

一、類與對(duì)象的概念

類即類別、種類,是面向?qū)ο笤O(shè)計(jì)最重要的概念,從一小節(jié)我們得知對(duì)象是特征與技能的結(jié)合體,而類則是一系列對(duì)象相似的特征與技能的結(jié)合體。

那么問(wèn)題來(lái)了,先有的一個(gè)個(gè)具體存在的對(duì)象(比如一個(gè)具體存在的人),還是先有的人類這個(gè)概念,這個(gè)問(wèn)題需要分兩種情況去看。

  • 在現(xiàn)實(shí)世界中:肯定是先有對(duì)象,再有類。
          
            世界上肯定是先出現(xiàn)各種各樣的實(shí)際存在的物體,然后隨著人類文明的發(fā)展,人類站在不同的角度總結(jié)出了不同的種類,比如
人類、動(dòng)物類、植物類等概念。也就說(shuō),對(duì)象是具體的存在,而類僅僅只是一個(gè)概念,并不真實(shí)存在,比如你無(wú)法告訴我人類
具體指的是哪一個(gè)人。
          
        
  • 在程序中:務(wù)必保證先定義類,后產(chǎn)生對(duì)象。
          
            這與函數(shù)的使用是類似的:先定義函數(shù),后調(diào)用函數(shù),類也是一樣的:在程序中需要先定義類,后調(diào)用類。不一樣的是:調(diào)用
函數(shù)會(huì)執(zhí)行函數(shù)體代碼返回的是函數(shù)體執(zhí)行的結(jié)果,而調(diào)用類會(huì)產(chǎn)生對(duì)象,返回的是對(duì)象。
          
        

二、定義類

按照上述步驟,我們來(lái)定義一個(gè)類(我們站在老男孩學(xué)校的角度去看,在座的各位都是學(xué)生)

  • 在現(xiàn)實(shí)世界中,先有對(duì)象,再有類
          
            對(duì)象1:李坦克
    特征:
        學(xué)校=oldboy
        姓名=李坦克
        性別=男
        年齡=18
    技能:
        學(xué)習(xí)
        吃飯
        睡覺

對(duì)象2:王大炮
    特征:
        學(xué)校=oldboy
        姓名=王大炮
        性別=女
        年齡=38
    技能:
        學(xué)習(xí)
        吃飯
        睡覺

對(duì)象3:牛榴彈
    特征:
        學(xué)校=oldboy
        姓名=牛榴彈
        性別=男
        年齡=78
    技能:
        學(xué)習(xí)
        吃飯
        睡覺


現(xiàn)實(shí)中的老男孩學(xué)生類
    相似的特征:
        學(xué)校=oldboy
    相似的技能:
        學(xué)習(xí)
        吃飯
        睡覺
          
        
  • 在程序中,務(wù)必保證:先定義(類),后使用類(用來(lái)產(chǎn)生對(duì)象)

注意:

  • 類中可以有任意python代碼,這些代碼在類定義階段便會(huì)執(zhí)行,因而會(huì)產(chǎn)生新的名稱空間,用來(lái)存放類的變量名與函數(shù)名,可以通過(guò) OldboyStudent.__dict__ 查看.
  • 類中定義的名字,都是類的屬性,點(diǎn)是訪問(wèn)屬性的語(yǔ)法。
  • 對(duì)于經(jīng)典類來(lái)說(shuō)我們可以通過(guò)該字典操作類名稱空間的名字,但新式類有限制(新式類與經(jīng)典類的區(qū)別我們將在后續(xù)章節(jié)介紹)。

三、類的使用

  • 引用類的屬性
          
            OldboyStudent.school #查
OldboyStudent.school='Oldboy' #改
OldboyStudent.x=1 #增
del OldboyStudent.x #刪
          
        
  • 調(diào)用類,或稱為實(shí)例化,得到程序中的對(duì)象
          
            s1=OldboyStudent()
s2=OldboyStudent()
s3=OldboyStudent()

#如此,s1、s2、s3都一樣了,而這三者除了相似的屬性之外還各種不同的屬性,這就用到了__init__
          
        
  • __init__ 方法
          
            #注意:該方法是在對(duì)象產(chǎn)生之后才會(huì)執(zhí)行,只用來(lái)為對(duì)象進(jìn)行初始化操作,可以有任意代碼,但一定不能有返回值
class OldboyStudent:
    ......
    def __init__(self,name,age,sex):
        self.name=name
        self.age=age
        self.sex=sex
    ......

s1=OldboyStudent('李坦克','男',18) #先調(diào)用類產(chǎn)生空對(duì)象s1,然后調(diào)用OldboyStudent.__init__(s1,'李坦克','男',18)
s2=OldboyStudent('王大炮','女',38)
s3=OldboyStudent('牛榴彈','男',78)
          
        

四、對(duì)象的使用

          
            #執(zhí)行__init__,s1.name='牛榴彈',很明顯也會(huì)產(chǎn)生對(duì)象的名稱空間可以用s2.__dict__查看,查看結(jié)果為
{'name': '王大炮', 'age': '女', 'sex': 38}

s2.name #查,等同于s2.__dict__['name']
s2.name='王三炮' #改,等同于s2.__dict__['name']='王三炮'
s2.course='python' #增,等同于s2.__dict__['course']='python'
del s2.course #刪,等同于s2.__dict__.pop('course')
          
        

五、補(bǔ)充說(shuō)明

  • 站的角度不同,定義出的類是截然不同的;
  • 現(xiàn)實(shí)中的類并不完全等于程序中的類,比如現(xiàn)實(shí)中的公司類,在程序中有時(shí)需要拆分成部門類,業(yè)務(wù)類等;
  • 有時(shí)為了編程需求,程序中也可能會(huì)定義現(xiàn)實(shí)中不存在的類,比如策略類,現(xiàn)實(shí)中并不存在,但是在程序中卻是一個(gè)很常見的類。

更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 涡阳县| 赤峰市| 永平县| 建昌县| 海口市| 连山| 微博| 德庆县| 岗巴县| 新郑市| 醴陵市| 邯郸县| 平陆县| 镇沅| 临湘市| 汉寿县| 乐东| 东平县| 天津市| 手机| 南城县| 肃南| 徐汇区| 宣恩县| 成都市| 广宗县| 化隆| 龙海市| 镇平县| 阳城县| 阜平县| 涿鹿县| 秀山| 抚松县| 渝北区| 武鸣县| 崇阳县| 阜新市| 大方县| 青川县| 广西|