python物件導向一
類是一種資料型別,而物件是具有這種資料型別的變數。類是抽象的,不佔有記憶體空間。而物件是具體的,佔有儲層空間。
python中,透過class關鍵字定義類。
形式:
class className:
類體
類體定義類的成員,有二種型別成員。一是資料成員,它描述問題的屬性。二是成員函式,它描述問題的行為。
類是抽象的,要使用類定義的功能必須將類例項化,即建立物件。 物件名=類名(引數列表)
class Person:
name=' '
age=0
def display(self):
print('name={0},age={1}'.format(self.name,self.age))
p=Person()
p.name='tom'
p.age=22
p.display()
結果
name=tom,age=22
物件導向,具有繼承,抽象,封裝等特點
python中,定義的方法至少含一個引數,一般預設self(相當於,其它語言的this吧),需要作為第一個引數。
類屬性就是類物件擁有的屬性,它被類物件共有,在記憶體中只有一個副本
class Person:
name=' ' #共有類屬性
__age=0 #私有類屬性
def setAge(self,a):
self.__age=a
def display(self):
print('name={0},age={1}'.format(self.name,self.__age))
p=Person()
#p.name='tom' 可以,但是不提倡
Person.name='tom'
p.setAge(22)
p.display()
類屬性,屬於類,既可以透過類訪問,也可以透過物件訪問,但是不建議透過物件訪問。
例項屬性, 不需要再類中顯示定義,而在init中建構函式中定義,定義時以self為字首。在其它方法也可以隨意新增例項物件物件,建議不這麼做,最好在init中給出。
例項屬性屬於例項物件,只能透過物件訪問。
class Animal:
def __init__(self,n,c):
self.name=n #定義例項屬性
self.color=c
def display(self):
print('name={0},color={1}'.format(self.name,self.color))
an=Animal('dog','black')
an.display()
name=dog,color=black
類的方法
類中的內建方法, 在python中有一些內建方法,這些方法名都有特殊的約定,以2個下劃線開始,2個下劃線結束, 類中最常用的就是構造方法和析構方法。
構造方法 init(self,***) 在生成物件的時候呼叫,可以進行一些屬性初始化操作,不需要顯示呼叫,系統會預設執行。構造方法支援過載,如果使用者沒有定義新的構造方法,系統會自動執行預設的構造方法。
析構方法 del(self)在釋放物件的時候呼叫,支援過載,不需要顯示呼叫。
class Animal:
def __init__(self,n,c):
self.name=n #定義例項屬性
self.color=c
print("執行了建構函式")
def __del__(self):
print("執行了解構函式")
def display(self):
print('name={0},color={1}'.format(self.name,self.color))
an=Animal('dog','black')
an.display()
del an
結果是:
執行了建構函式
name=dog,color=black
執行了解構函式
分2部分吧。。。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/1868/viewspace-2802054/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- python物件導向(一)Python物件
- Python——物件導向Python物件
- Python 物件導向Python物件
- python物件導向Python物件
- python-程式導向、物件導向、類Python物件
- python物件導向(下)Python物件
- Python物件導向(上)Python物件
- 物件導向-物件導向思想物件
- python之物件導向程式設計(一)Python物件程式設計
- Java物件導向(一)Java物件
- python物件導向思想(類與物件)Python物件
- python物件導向[基礎]Python物件
- Python物件導向知多少?Python物件
- Python 物件導向介紹Python物件
- python 初識物件導向Python物件
- Python 物件導向筆記Python物件筆記
- C++ 物件導向 一C++物件
- 如何理解物件導向(一)物件
- JavaScript 物件導向精要(一)JavaScript物件
- 物件導向建模分析(一)物件
- JAVA(一)JAVA基礎/物件導向基礎/高階物件導向Java物件
- 草根學Python(九) 物件導向Python物件
- Python物件導向三大特性Python物件
- python-物件導向入門Python物件
- 2.1.0 Python初識物件導向Python物件
- 面向Python,物件導向(基礎)Python物件
- python之成員(物件導向)Python物件
- Python物件導向程式設計Python物件程式設計
- Python物件導向之九:反射Python物件反射
- Python 物件導向程式設計Python物件程式設計
- Python基礎之物件導向Python物件
- Python進階之物件導向Python物件
- python---之物件導向selfPython物件
- 程式導向與物件導向物件
- 物件導向與程式導向物件
- “程序導向”和“物件導向”物件
- 【Python】5.物件導向的PythonPython物件
- Python之物件導向和麵向過程Python物件