亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Python面向對象編程——類與對象

系統 1751 0

Python面向對象編程——類與對象

一、類與對象的概念

類即類別、種類,是面向對象設計最重要的概念,從一小節我們得知對象是特征與技能的結合體,而類則是一系列對象相似的特征與技能的結合體。

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

  • 在現實世界中:肯定是先有對象,再有類。
          
            世界上肯定是先出現各種各樣的實際存在的物體,然后隨著人類文明的發展,人類站在不同的角度總結出了不同的種類,比如
人類、動物類、植物類等概念。也就說,對象是具體的存在,而類僅僅只是一個概念,并不真實存在,比如你無法告訴我人類
具體指的是哪一個人。
          
        
  • 在程序中:務必保證先定義類,后產生對象。
          
            這與函數的使用是類似的:先定義函數,后調用函數,類也是一樣的:在程序中需要先定義類,后調用類。不一樣的是:調用
函數會執行函數體代碼返回的是函數體執行的結果,而調用類會產生對象,返回的是對象。
          
        

二、定義類

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

  • 在現實世界中,先有對象,再有類
          
            對象1:李坦克
    特征:
        學校=oldboy
        姓名=李坦克
        性別=男
        年齡=18
    技能:
        學習
        吃飯
        睡覺

對象2:王大炮
    特征:
        學校=oldboy
        姓名=王大炮
        性別=女
        年齡=38
    技能:
        學習
        吃飯
        睡覺

對象3:牛榴彈
    特征:
        學校=oldboy
        姓名=牛榴彈
        性別=男
        年齡=78
    技能:
        學習
        吃飯
        睡覺


現實中的老男孩學生類
    相似的特征:
        學校=oldboy
    相似的技能:
        學習
        吃飯
        睡覺
          
        
  • 在程序中,務必保證:先定義(類),后使用類(用來產生對象)

注意:

  • 類中可以有任意python代碼,這些代碼在類定義階段便會執行,因而會產生新的名稱空間,用來存放類的變量名與函數名,可以通過 OldboyStudent.__dict__ 查看.
  • 類中定義的名字,都是類的屬性,點是訪問屬性的語法。
  • 對于經典類來說我們可以通過該字典操作類名稱空間的名字,但新式類有限制(新式類與經典類的區別我們將在后續章節介紹)。

三、類的使用

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

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

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

四、對象的使用

          
            #執行__init__,s1.name='牛榴彈',很明顯也會產生對象的名稱空間可以用s2.__dict__查看,查看結果為
{'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')
          
        

五、補充說明

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

更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

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

【本文對您有幫助就好】

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

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 丁香婷婷六月 | 精品一区二区三区在线观看视频 | 国产成人夜间影院在线观看 | 日本久久综合视频 | 成人黄性视频 | 国产精品久久久久久久久福利 | 四虎在线永久免费观看 | 884hutv四虎永久黄网 | 青青热久免费精品视频精品 | 国产九九在线 | 日韩欧美色视频在线观看 | 一及黄色毛片 | 天天夜碰日日摸日日澡 | 国产精品久久久久久吹潮 | 亚洲精品国产专区一区 | 国产一区二区三区 | 日本99视频 | 色综合久久久久久久 | 亚洲精品一区二区手机在线 | 中文字幕免费视频精品一 | 精品免费久久久久国产一区 | 综合一个色 | 国产在线精品成人一区二区三区 | 岛国一级毛片 | 亚洲青色在线 | 不卡的中文字幕 | 国产精品久久久久久久伊一 | 青青青免费视频精品99 | 精品久久久久久久高清 | 久久美女 | 日日夜夜操天天干 | 亚洲伊人久久综合一区二区 | 欧美成人一级视频 | 色老老精品偷偷鲁 | 久青草香蕉精品视频在线 | 欧美老司机 | 中文字幕一区二区三区免费看 | 亚洲日本高清成人aⅴ片 | 视频一区二区国产 | 亚洲精品久久久久综合网 | 老太做爰xxxx视频 |