Python物件導向

來源:互聯網
上載者:User

標籤:資料   分享圖片   python   dog   turn   display   isp   參數   /usr   

一、物件導向

  python本身就是一門物件導向的語言,物件導向的程式設計的核心是對象,首先要理解什麼是對象。

  物件導向的優點:解決了程式的擴充性。

  物件導向的缺點:可控性差。

  1、物件導向的名詞簡介

    類(class):用來描述具有相同的屬性和方法的對象的集合,他定義了該集合中每一個對象所共有的屬性和方法,對象是類的執行個體;

    類變數:類變數在整個執行個體化的對象中是公用的。

    執行個體化:建立一個類的執行個體,類的具體對象。

    方法:類中定義的函數

    對象:通過類定義的資料結構執行個體;對象包括兩個資料成員(類變數和執行個體變數)和方法

  2、類的文法:

class  類名:    屬性 = aprint(類名.屬性)#類名的作用就是操作屬性  查看屬性

類執行個體化後,可以使用其屬性,實際上建立一個類之後,可以通過類名訪問其屬性。

  3、類對象

    類對象支援兩種操作:屬性引用和執行個體化。

    屬性引用使用和 Python 中所有的屬性引用一樣的標準文法:obj.name

    類對象建立後,類命名空間中所有的命名都是有效屬性名稱。所以如果類定義是這樣:

    

#!/usr/bin/python# -*- encodeing:utf-8 -*-class MyClass:    """一個簡單的類執行個體"""    i = 12345    def f(self):        return ‘hello world‘print(MyClass.i)
類定義

    很多類都傾向於將對象建立為有初始化狀態的。因此類可能會定義一個名為__init__()的特殊方法,類的執行個體化操作會自動調用__init__()方法,__init__() 方法可以有參數,參數通過 __init__() 傳遞到類的執行個體化操作上,執行個體如下:

#!/usr/bin/python# -*- encodeing:utf-8 -*-class Person():    def __init__(self,*args):        self.name = args[0]        self.age = args[1]        self.sex = args[2]ret = Person(‘小明‘,10,‘男‘)
__init__

  4、self 代表類的執行個體,而不是類

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

#!/usr/bin/python# -*- encodeing:utf-8 -*-class Test:    def prt(self):        print(self)        print(self.__class__)t = Test()t.prt()
View Code

  5、類的方法

    在類地內部,使用 def 關鍵字來定義一個方法,與一般函數定義不同,類方法必須包含參數 self, 且為第一個參數,self 代表的是類的執行個體。

#!/usr/bin/python# -*- encodeing:utf-8 -*-class Dog:    def __init__(self,name,blood,aggr,kind):        self.name = name        self.hp = blood        self.aggr = aggr        self.kind = kind    def bite(self,person):        # 狗咬人,人掉血            if person.blood <= 0:                print(‘%s咬了%s,%s被咬死了‘%(self.name,person.name,person.name))            else:                print(‘%s咬了%s,%s掉了%s血‘ %(self.name,person.name,person.name,self.aggr))class Person:    def __init__(self,name,blood,aggr,sex):        self.name = name        self.blood = blood        self.aggr = aggr        self.sex = sex    def attack(self,dog):        if dog.hp <= 0:            print(‘%s打了%s,%s被打死了‘ %(self.name,dog.name,dog.name))        else:            print(‘%s打了%s,%s掉了%s血‘ % (self.name, dog.name, dog.name,self.aggr))dog1 = Dog(‘旺財‘,990,80,‘keddy‘)alex = Person(‘張三‘,999,998,‘不詳‘)dog1.bite(alex)alex.attack(dog1)
人與狗執行個體

 

  

Python物件導向

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.