首頁  >  文章  >  後端開發  >  詳解python類別實例分析

詳解python類別實例分析

高洛峰
高洛峰原創
2017-03-26 10:04:121806瀏覽

這篇文章主要介紹了python 類別詳解及實例的相關資料,需要的朋友可以參考下

python 類別詳解

#類別

1.類別是一種資料結構,可用來建立實例。 (一般情況下,類別封裝了資料和可用於該資料的方法)

2.Python類別是可呼叫的物件,即類別物件

##3.類別通常在模組的頂層進行定義,以便類別實例能夠在類別所定義的原始程式碼檔案中的任何地方被創建。

4.實例初始化

  1. instance =

    ClassName(args....)

  2. 類別在實例化時可以使用init和del兩個特殊的方法。

  3.  class ClassName(base):
    'class documentation string' #类文档字符串
     class suite        #类体
  1. base:超類別是一個或多個用於

    繼承的父類別集合

  2. 類別體可以包含:宣告語句、類別成員定義、資料

    屬性、方法

  3. #如果類別不存在繼承關係,就不提供括號裡的base

  4.  class FirstClass():
      spam = 30    #类数据属性
      def display(self): #类方法
       print self.spam
     x = FirstClass()   #创建类实例
     x.display()     #方法调用
     >>> 30
     dir(FirstClass)
     >>> ['doc', 'module', 'display', 'spam']
  • class語句類似def,是可執行程式碼;直到執行class語句後,類別才會建立

  • class語句內,任何賦值語句都會建立類別屬性

  • 每個實例物件都會繼承類別的屬性並取得自己的名稱空間

Python類別方法及呼叫

實例(物件)所包含的屬性

  • 可呼叫的屬性:方法

  • 資料屬性

在OOP中,實例就像是帶有「資料」的記錄,而類別是處理這些記錄的“程式”

  • 透過實例呼叫方法相當於呼叫所屬類別的方法來處理目前實例。 例如之前的程式碼例子,x.display() 會被自動轉換為FirstClass.display(x),也就是呼叫類別的方法來處理實例x

  • 因此,類別中每個方法必須有self參數,它隱含目前實例之意

  • 在方法內對self屬性做賦值運算會產生每個實例自己的屬性

  • Python規定,沒有實例,方法不允許被調用,這是'綁定'(binding)的概念

  • class語句中的賦值語句會創建類別屬性,如前面範例的spam

  • 在類別方法中對傳給方法的特殊參數self進行賦值會建立實例屬性

##Python建構器

建立實例時,Python會自動呼叫類別中的init方法,以隱形的為實例提供屬性

    init方法稱為建構器
  1. 如果類別中沒有定義init方法,實例建立之初只是一個簡單的名稱空間。
  2. init的第一個參數一定是self ,self
  3. 變數

    用於在類別實例方法中引用方法所綁定的實例。因為方法的實例在任何方法呼叫中總是作為第一個參數傳遞的,self 被選中用來代表實例。你必須在方法宣告中放上 self,但可以在方法中不使用實例(self)。如果你的方法中沒有用到 self , 那麼請考慮創建一個常規函數,除非你有特別的原因。畢竟,你的方法程式碼沒有使用實例,沒有與類別關聯其功能,這使得它看起來更像一個常規函數。在其它物件導向語言中,self 可能被稱為 this。

    init不能回傳任何物件
  • 析構函數

    :del

  • 建構子

    是必要的,而析構函式常常可以不考慮(Python解釋器會自己回收)

class MyClass():
 def init(self, name):
  self.name = name
  print 'My name is ' + self.name
 def del(self):
  print self.name + ' is dead.'
i1 = MyClass('Shaw')
>>> My name is Shaw
del i1
>>> Shaw id dead.

类的特殊属性

  • 使用dir()或dict,查看类或实例的属性

  • doc:获取文档字符串

  • base:获取所有父类

  • module:类所在的模块

  • name:实例所属类的名字

Python类方法中可用的变量

  • 实例变量:self.变量名

  • 局部变量:方法内部创建的变量,可直接使用

  • 静态变量:类中定义的变量。类名.变量名

  • 全局变量:直接使用

继承

继承描述了基类的属性如何‘遗传'给派生类

  1. 子类可以继承他的基类的任何属性,包括数据属性和方法

  2. 一个未指定基类的类,其默认有一个叫object的基类

  3. Python允许多重继承(可以继承多个父类)

 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

以上是詳解python類別實例分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn