7.1_面向對象編程Object-Oriented和裝飾器decorator

      網友投稿 756 2025-03-31

      1. 面向對象編程

      面向對象技術簡介

      類(Class):?用來描述具有相同的屬性和方法的對象的集合。它定義了該集合中每個對象所共有的屬性和方法。對象是類的實例。

      類變量:類變量在整個實例化的對象中是公用的。類變量定義在類中且在函數體之外。類變量通常不作為實例變量使用。

      數據成員:類變量或者實例變量用于處理類及其實例對象的相關的數據。

      方法重寫:如果從父類繼承的方法不能滿足子類的需求,可以對其進行改寫,這個過程叫方法的覆蓋(override),也稱為方法的重寫。

      實例變量:定義在方法中的變量,只作用于當前實例的類。

      繼承:即一個派生類(derived class)繼承基類(base class)的字段和方法。繼承也允許把一個派生類的對象作為一個基類對象對待。例如,有這樣一個設計:一個Dog類型的對象派生自Animal類,這是模擬"是一個(is-a)"關系(例圖,Dog是一個Animal)。

      實例化:創建一個類的實例,類的具體對象。

      方法:類中定義的函數。

      對象:通過類定義的數據結構實例。對象包括兩個數據成員(類變量和實例變量)和方法。

      Python支持面向對象編程

      類(class):現實世界中一些事物的封裝 (如:學生)

      類:屬性 (如:名字,成績)

      類對象

      實例對象

      引用:通過引用對類的屬性和方法進行操作

      實例化:創建一個類的具體實例對象 (如:學生張三)

      #!/usr/bin/python # -*- coding: UTF-8 -*- class Employee : ' 所有員工的基類 ' empCount = 0 def __init__ ( self , name , salary ) : self . name = name self . salary = salary Employee . empCount += 1 def displayCount ( self ) : print " Total Employee %d " % Employee . empCount def displayEmployee ( self ) : print " Name : " , self . name , " , Salary: " , self . salary

      empCount 變量是一個類變量,它的值將在這個類的所有實例之間共享。你可以在內部類或外部類使用 Employee.empCount 訪問。

      第一種方法__init__()方法是一種特殊的方法,被稱為類的構造函數或初始化方法,當創建了這個類的實例時就會調用該方法

      self 代表類的實例,self 在定義類的方法時是必須有的,雖然在調用時不必傳入相應的參數。

      self代表類的實例,而非類

      類的方法與普通的函數只有一個特別的區別——它們必須有一個額外的 第一個參數名稱 , 按照慣例它的名稱是 self。

      class Test : def prt ( self ) : print ( self ) print ( self . __class__ ) t = Test () t . prt ()

      以上實例執行結果為:

      <__main__.Test instance at 0x10d066878>__main__.Test

      從執行結果可以很明顯的看出,self 代表的是類的實例,代表當前對象的地址,而 self.class 則指向類。

      self 不是 python 關鍵字,我們把他換成 runoob 也是可以正常執行的:

      實例

      class Test : def prt ( runoob ) : print ( runoob ) print ( runoob . __class__ ) t = Test () t . prt ()

      以上實例執行結果為:

      <__main__.Test instance at 0x10d066878>__main__.Test

      2. 裝飾器(decorator)

      Code:

      #Python OO example

      class Student :

      def __init__ ( self , name , grade ):

      self .name = name

      self .grade = grade

      def introduce ( self ):

      print ( "hi! I'm " + self .name)

      print ( "my grade is: " + str ( self .grade))

      def improve ( self , amount ):

      self .grade = self .grade + amount

      jim = Student( "jim" , 86 )

      jim.introduce()

      jim.improve( 10 )

      jim.introduce()

      def add_candles ( cake_func ):

      def insert_candles ():

      return cake_func() + " candles"

      return insert_candles

      def make_cake ():

      return "cake"

      gift_func = add_candles(make_cake)

      print (make_cake())

      print (gift_func())

      def add_candles ( cake_func ):

      def insert_candles ():

      return cake_func() + " candles"

      return insert_candles

      def make_cake ():

      return "cake"

      make_cake = add_candles(make_cake)

      print (make_cake())

      # print(gift_func))

      def add_candles ( cake_func ):

      def insert_candles ():

      return cake_func() + " and candles"

      return insert_candles

      @add_candles

      def make_cake ():

      return "cake"

      7.1_面向對象編程Object-Oriented和裝飾器decorator

      # make_cake = add_candles(make_cake)

      print (make_cake())

      # print(gift_func)

      #修飾器

      面向對象編程

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:風投項目計劃書模板(風險投資項目計劃書)
      下一篇:excel如何多列排序(excel怎樣多列排序)
      相關文章
      黑人粗长大战亚洲女2021国产精品成人免费视频 | 天天爽亚洲中文字幕| 国产精品亚洲片在线| 伊人婷婷综合缴情亚洲五月| 在线亚洲v日韩v| 婷婷亚洲天堂影院| 国产亚洲Av综合人人澡精品| 国产精品亚洲综合天堂夜夜| 国产精品无码亚洲精品2021| 精品国产日韩亚洲一区91| 少妇亚洲免费精品| 亚洲国产精品一区二区三区久久| 日韩精品亚洲专区在线影视| 成人亚洲国产精品久久| 亚洲&#228;v永久无码精品天堂久久 | 亚洲乱人伦精品图片| 亚洲a级成人片在线观看| 99999久久久久久亚洲| 狠狠色伊人亚洲综合网站色| 亚洲午夜福利在线视频| 亚洲AV无码精品国产成人| 亚洲成A人片在线观看无码3D| 亚洲 综合 国产 欧洲 丝袜| 国产偷国产偷亚洲高清日韩| 亚洲中文字幕无码日韩| 亚洲成色www久久网站夜月| 亚洲av无码国产精品色午夜字幕 | 亚洲色大成网站www久久九| 亚洲高清毛片一区二区| 国产精品亚洲五月天高清| 亚洲国产成人精品女人久久久 | 亚洲精品91在线| 亚洲 欧洲 日韩 综合在线| 亚洲国产精品无码观看久久| 国产成人亚洲午夜电影| 久久久久亚洲AV无码专区桃色| 亚洲精品亚洲人成人网| 色婷婷亚洲十月十月色天| 亚洲日韩乱码中文无码蜜桃臀 | 亚洲乱码中文字幕综合| 亚洲一区二区三区电影|