Python學習系列(八)( 物件導向基礎)

來源:互聯網
上載者:User

標籤:

 Python學習系列(八)( 物件導向基礎)  Python學習系列(七)( 資料庫編程) 一,物件導向
1,域:屬於一個對象或類的變數。有兩種類型,即執行個體變數—屬於每個執行個體/類的對象;類變數—屬於類本身。2,類的方法:對象也可以使用屬於類的函數來具有功能,這樣的函數稱之為類的方法。域和方法合稱為類的屬性。類使用class關鍵字建立,類的屬性被列在一個縮排塊中。3,self:類的方法與普通的函數只有一個特別的區別----他們必須有一個額外的第一個參數名稱,但是在調用的時候不能為其賦值,Python會提供。這個特別的變數指對象本身,按照慣例命名為self。self等價於C++中的self指標和Java,C#中的this。建立一個類:
1 class Person:2     pass3  4 p=Person()5 print p6 >>> ============= RESTART ================================7 >>>8 <__main__.Person instance at 0x02A99B98>
View Code4,使用對象的方法:1)
1 class Person:2     def sayHi(self):3         print ‘Hello,how are you?‘4  5 p=Person()6 p.sayHi()
View Code2)使用__init__方法
1 class Person:2     def __init__(self,name):3         self.name=name4        5     def sayHi(self):6         print ‘Hello,my name is‘,self.name7  8 p=Person(‘John‘)9 p.sayHi()
View Code

3)使用類與對象的變數

 1 class Person: 2     ‘‘‘Represents a person.‘‘‘ 3     population=0 4     def __init__(self,name): 5         ‘‘‘Initializes the person‘s data.‘‘‘ 6         self.name=name 7         print ‘(Initializing %s)‘%self.name 8         Person.population +=1 9        10     def __del__(self):11         ‘‘‘I‘m dying.‘‘‘12         print ‘%s says bye.‘%self.name13         Person.population -=114         if Person.population==0:15             print ‘‘‘I‘m the last one.‘‘‘16         else:17             print ‘There are still %d people left.‘%Person.population18            19     def sayHi(self):20         ‘‘‘Greeting by the person.21  22         Really,that‘s all it does.‘‘‘23         print ‘Hello,my name is%s.‘%self.name24  25     def howMany(self):26         ‘‘‘Prints the current population.‘‘‘27         if Person.population==1:28             print ‘‘‘I‘m the only one here.‘‘‘29         else:30             print ‘We have %d person here.‘%Person.population31  32    33 p=Person(‘John‘)34 p.sayHi()35 p.howMany()36  37 p1=Person(‘John1‘)38 p1.sayHi()39 p1.howMany()40  41 p.sayHi()42 p.howMany()
View Code

屬性參考:使用self變數來參考同一個對象的變數和方法。

二、繼承
1,繼承是用來描述類之間的類型和子類型關係。2,多態現象:一個子類型在任何需要父類型的場合可以替換父類型,即對象可以被視作父類的執行個體。3,基本類(超類)和子類(匯出類)4,樣本:
 1 class SChoolMember: #教師與學生的公有屬性,基類 2     ‘‘‘Represents any SChoolMember.‘‘‘ 3     def __init__(self,name,age): 4         ‘‘‘Initializes the person‘s data.‘‘‘ 5         self.name=name 6         self.age=age 7         print ‘(Initializing SChoolMember %s)‘%self.name 8   9     def tell(self):10         ‘‘‘Tell my details.‘‘‘11         print ‘‘‘Name:%s\nAge:%s‘‘‘%(self.name,self.age)12  13 class Teacher(SChoolMember): #教師子類14     ‘‘‘Represents any Teacher.‘‘‘15     def __init__(self,name,age,salary):16         ‘‘‘Initializes the person‘s data.‘‘‘17         SChoolMember.__init__(self,name,age) #繼承18         self.salary=salary19         print ‘(Initializing Teacher %s)‘%self.name20  21     def tell(self):22         ‘‘‘Tell my details.‘‘‘23         SChoolMember.tell(self) #繼承24         print ‘‘‘Salary:%d‘‘‘%self.salary25  26 class Student(SChoolMember): #學生子類27     ‘‘‘Represents any Student.‘‘‘28     def __init__(self,name,age,marks):29         ‘‘‘Initializes the person‘s data.‘‘‘30         SChoolMember.__init__(self,name,age) #繼承31         self.marks=marks32         print ‘(Initializing Student %s)‘%self.name33  34     def tell(self):35         ‘‘‘Tell my details.‘‘‘36         SChoolMember.tell(self) #繼承37         print ‘‘‘Marks:%d‘‘‘%self.marks38  39  40 t=Teacher(‘Mrs.Jhon‘,40,4000)41 s=Student(‘zhangbc‘,23,90)42 members=[t,s]43 for member in members:44     member.tell()45     print ‘‘
View Code
三、小結      時隔快一年了,動筆生疏了,想想還是學習比較踏實吧。本篇幅較短,重在理解,後續逐漸完善。

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.