<wbr id="wsjqy"></wbr>

          <form id="wsjqy"></form>
          <sub id="wsjqy"></sub>
          <nav id="wsjqy"><listing id="wsjqy"></listing></nav>
          更多課程 選擇中心


          Python培訓

          400-111-8989

          Python面向對象編程簡單講解

          • 發布:Python培訓
          • 來源: 瓦爾登小柴胡
          • 時間:2019-12-23 13:25

          學習目標:

          1-面向對象編程

          2-類和對象

          3-對象的屬性和方法

          4-類的特性

          Python面向對象編程

          一種編程程序的設計思想,把對象作為程序的基本單元,一個對象包含了數據和操作數據的函數。把計算機程序視為一組對象的集合,而每個對象都可以接收其他對象發過來的消息,并處理這些消息,計算機程序的執行就是一系列消息在各個對象之間傳遞。

          在Python中,所有數據類型都可以視為對象,也可以自定義對象。自定義的對象數據類型就是面向對象中的類(class)概念。

          面向對象的設計思想是抽象出Class(類)和instance(實例),面向對象的抽象程度比函數高,一個類即包含數據又包含操作數據的方法。

          類和對象

          面向對象編程的兩個非常重要的概念:類和對象

          對象是面向對象編程的核心,在使用對象的過程中,為了將具有共同特征和行為的一組的景象定義,提出了另外一個新的概念——類

          具有相似內部狀態和運動規律的實體的集合。具有相同發生和行為事物的統稱,類是抽象的,在使用的時候通常會找到這個類的一個具體的存在,使用這個具體的存在。一個類可以找到多個對象。

          對象

          某一個具體事物的存在,在現實世界中可以是看得風措得著的,可以是直接使用的。

          類與對象之間的關系:類就是創建對象的模板

          定義類和創建對象

          定義一個類和創建對象,格式如下:

          #創建類——經典方法
          
          class 類名: #class-關鍵字,類名的命名使用大駝峰命名法,即首字母大寫
          
          #如下:
          
          class Hero:
          
          #創建類——新方法
          
          class Hero(object):#object是python里所有類的最頂級父類
          
          #函數,在類中叫做方法
          
          #創建方法
          
          def info(self):#info是一個實例方法,第一個參數一般是self:表示實例對象本身。
          
          print("這是面向對象hero")
          
          #創建對象
          
          對象名1 = 類名()
          
          對象名2 = 類名()
          
          對象名3 = 類名()
          
          對象名(不必遵循大駝峰命名法) = 類名()
          
          my_hero = Hero()
          
          #對象的使用方法,對象名.(點語法)方法名
          
          my_hero.info()
          
          #輸出結果:
          
          這是面向對象hero
          
          #再創建一個對象
          
          my_hero2 = Hero()
          
          print(my_hero)
          
          print(my_hero2)
          
          #輸出結果:
          
          <__main__.Hero object at 0x000001F23E784400>#地址:在存儲機制中
          
          <__main__.Hero object at 0x000001F23E761F98>#地址

          對象的屬性和方法

              獲取和添加對象的屬性

          class teacher(object):
          
          def show(self):
          
          print("今天北京下雪了")
          
          #創建對象
          
          teacher_zhang = teacher()
          
          #添加屬性、特點、特征
          
          teacher_zhang.name = "張三"
          
          teacher_zhang.age = 20
          
          teacher_zhang.sex = "男"
          
          #獲取屬性,通過點語法
          
          print(teacher_zhang.name)

          輸出結果:張三

          #修改屬性
          
          teacher_zhang.age = 30
          
          print(teacher_zhang.age)

          輸出結果:30

              init 魔法函數:用來做屬性的初始化

          class teacher(object):
          
          def __init__(self):
          
          print("這是init方法")
          
          def showName(self):
          
          print("我的名字")
          
          zhangsan = teacher()
          
          zhangsan.showName()
          
          #輸出結果
          
          這是init方法
          
          我的名字
          
          #__init__()方法,在創建一個對象時自動被調用,不需要手動調用
          
          即:
          
          class teacher(object):
          
          def __init__(self):
          
          print("這是init方法")
          
          def showName(self):
          
          print("我的名字")
          
          zhangsan = teacher()
          
          #輸出結果:
          
          這是init方法
          
          #有參數的init方法
          
          class teacher(object):
          
          def __init__(self,name,age):
          
          print("這是init方法")
          
          self.name = name
          
          self.age = age
          
          print(name,age)
          
          def showName(self):
          
          print("我的名字")
          
          zhangsan = teacher("張三",20)
          
          #輸出結果
          
          張三 20

          類的特性:封裝、繼承、多態

          繼承:多個類之間的所屬關系

          class Father(object):
          
          def __init__(self,name):
          
          self.name = name
          
          print("我叫%s"%self.name)
          
          def info(self):
          
          print("我來自")
          
          class Son(object):
          
          def show(self):
          
          print("展現我自己")
          
          guoQilin = Son()
          
          guoQilin.show()
          
          #輸出結果:展示我自己

              單繼承:Son類繼承于Father

          class Father(object):#父類:基類
          
          def __init__(self,name):
          
          self.name = name
          
          self.family = "郭氏"
          
          print("我叫%s"%self.name)
          
          def info(self):
          
          print("我來自%s家族"%self.family)
          
          class Son(Father):#子類,通過繼承,可以使用父類中的方法
          
          def show(self):
          
          print("展現我自己")
          
          def info(self):
          
          print("我是德云社新一代,個性就是要與眾不同")
          
          guoQilin = Son("郭麒麟") #”郭麒麟“是屬性,guoQilin是一個對象
          
          guoQilin.show()
          
          guoQilin.info()
          
          #輸出結果
          
          我叫郭麒麟
          
          展現我自己
          
          我是德云社新一代,個性就是要與眾不同

          子類在繼承的時候,子類定義小括號中父類的名字;父類中的屬性與方法都會傳給子類;雖然子類沒有定義init方法,但是父類有,子類應付使用父類的方法。

              多繼承:

          #多繼承
          
          class Father(object):
          
          def __init__(self,name):
          
          self.name = name
          
          self.family = "郭氏"
          
          print("我叫%s"%self.name)
          
          def info(self):
          
          print("我來自%s家族"%self.family)
          
          class ShiFu(object):
          
          def __init__(self):
          
          self.teacher = "于氏門生"
          
          def speak(self):
          
          print("我要說相聲")
          
          class Son(Father,ShiFu):
          
          def show(self):
          
          print("展現我自己")
          
          def info(self):
          
          print("我是德云社新一代,個性就是要與眾不同")
          
          guoQilin = Son("郭麒麟") #”郭麒麟“是屬性,guoQilin是一個對象
          
          guoQilin.show()
          
          guoQilin.info()
          
          guoQilin.speak()
          
          #輸出結果
          
          我叫郭麒麟
          
          展現我自己
          
          我是德云社新一代,個性就是要與眾不同
          
          我要說相聲
          #魔法屬性,可以查看繼承順序,子類,父類,師父類
          print(Son.__mro__)
          
          #輸出結果
          
          (<class '__main__.Son'>, <class '__main__.Father'>, <class '__main__.ShiFu'>, <class 'object'>)

              重寫父類方法

          子類繼承父類,父類的方法滿足不了子類的需要可以對父類的方法進行重寫;重寫的特點:繼承關系,方法名相同

              屬性方法

          類屬性與實例屬性

          類屬性就是類對象所擁有的屬性,這被所有類對象的實例對象所共有,在內存中只存在一個副本。

          #類屬性
          
          class People(object): #創建一個類
          
          ame = "tom" #公有的類屬性
          
          __age = 12 #私有的類屬性
          
          p = People() #創建一個對象
          
          #類的共有屬性,實例(對象)與類都可以調用
          
          print(p.name)
          
          print(People.name)
          
          #輸出結果:
          
          tom
          
          tom
          
          #私有的類屬性,只能在類里面調用
          
          print(p._age)
          
          print(People._age)
          
          #實例屬性
          
          class People(object):
          
          ame = "tom"
          
          #類屬性,直接在類里面寫的
          
          def __init__(self):#self會將其下的屬性指給對象
          
          self.name = "xiaowang" #實例屬性
          
          self.age = 20
          
          p = People()
          
          p.age = 12
          
          print(p.name)
          
          print(p.age)
          
          #輸出結果
          
          xiaowang
          
          12
          
          可以用實例屬性改掉類屬性

              靜態方法和類方法

          類方法是類對象所擁有的方法,第一個參數必須是類對象,一般以cls作為第一個參數,能夠通過實例對象和類對象去訪問。類方法用@classmethod修飾。

          靜態方法用@staticmethod修飾,不能傳入self,是獨立的單純的函數 。

          #魔法屬性,可以查看繼承順序,子類,父類,師父類

          print(Son.__mro__)

          #輸出結果

          (<class '__main__.Son'>, <class '__main__.Father'>, <class '__main__.ShiFu'>, <class 'object'>)

          預約申請免費試聽課

          填寫下面表單即可預約申請免費試聽!怕錢不夠?可就業掙錢后再付學費! 怕學不會?助教全程陪讀,隨時解惑!擔心就業?一地學習,可全國推薦就業!

          上一篇:再次學習python標準數據類型
          下一篇:學習Python文件讀取

          Python中類的屬性有哪幾種

          Python語法你知道多少

          Python 中常見的配置文件寫法

          Python爬蟲可以做什么

          • 掃碼領取資料

            回復關鍵字:視頻資料

            免費領取 達內課程視頻學習資料

          • 視頻學習QQ群

            添加QQ群:1143617948

            免費領取達內課程視頻學習資料

          Copyright ? 2021 Tedu.cn All Rights Reserved 京ICP備08000853號-56 京公網安備 11010802029508號 達內時代科技集團有限公司 版權所有

          選擇城市和中心
          黑龍江省

          吉林省

          河北省

          湖南省

          貴州省

          云南省

          廣西省

          海南省

          网友自拍 偷拍 校园性爱青青草曰逼视屏老鸭窝国产偷自视频区视频 百度 好搜 搜狗
          <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>