python物件導向

2021-09-25 17:19:57 字數 2393 閱讀 2042

3 類的繼承和多型

4 物件複製

類:具有相同或相似性質的物件的抽象,類是物件的抽象,物件是類的具體化

封裝:定義乙個類,將資料和操作**在一起

繼承:類和類的關係,乙個類共享其他類的定義和行為

方法:成員函式

建構函式:初始化物件需要的函式,與類同名

析構函式:物件脫離其作用域時,即物件所在的函式呼叫完畢所執行的方法,清理善後工作。

class person:     

def say_hello(self):

print('hello')

注意:

類的命名一般以大寫字母開頭

self是必須的形參,代表物件本身

class mystring():

_str='mystring'

def output(self):

print(self.str)

s=mystring()

s.output()

del s 表示用del刪除s物件

靜態變數屬於類,與具體的物件無關,任何公有變數可以當做靜態變數使用

通過類名訪問和物件訪問的靜態變數不同

靜態方法無需要傳入self引數,因此靜態方法中無法訪問私有變數

靜態方法不可以直接訪問類的靜態變數,但是可以通過類名訪問。

靜態方法類似函式工具庫,無法訪問直接訪問類的靜態變數,和例項變數,與定義的類無關係。

class myclass:

str='aaaa'

@staticmethod

def static():

print(myclass.str)# 直接str時無法訪問

myclass.static()

c=myclass()

c.static()

isinstance(物件名,類名)是返回true 否則返回false

繼承,子類可以繼承父類的方法和屬性。

抽象類,包含抽象方法的類,抽象方法不實現。留給子類實現。

定義抽象類通過類庫abc,中的abcmeta,abstractmethod

from abc import abcmeta,abstractmethod ( metaclass for abstruct based class)

類定義中加上如下**:

mataclass=abcmata

抽象方法中加入如下**

@abstractmethod

例子

from abc import abcmeta,abstractmethod

class shape(object): #繼承超類

__metaclass__=abcmeta #指明十個抽象類

def __init__(self):

self.color='black'

@abstractmethod #指明是抽象方法

def draw(self):pass

class circle(shape): #繼承shape類

def __init__(self,x,y,r):

self.x=x

self.y=y

self.r=r

def draw(self):

print('圓形的資訊為',self.x,self.y,self.r)

class line(shape): #繼承shape類

def __init__(self,x1,y1,x2,y2):

self.x1=x1

self.x2=x2

self.y1=y1

self.y2=y2

def draw(self):

print('直線的資訊為',self.x1,self.x2,self.y1,self.y2)

c=circle(10,10,5)

c.draw()

l=line(10,10,20,20)

l.draw()

方法為:

新物件=原有物件

接3**

newcircle=c

newcircle.draw()

結果與原物件完全相同

def drawcircle(c)

if isinstance(c,circle)

c.draw()

python物件導向學習 python物件導向學習

物件導向最重要的概念就是類 class 和例項 instance 必須牢記類是抽象的模板,比如student類,而例項是根據類建立出來的乙個個具體的 物件 每個物件都擁有相同的方法,但各自的資料可能不同。物件導向三個概念 1.封裝 即把客觀事物封裝成抽象的類,並且類可以把自己的資料和方法讓可信的類進...

python物件導向總結 Python物件導向總結

python 物件導向 oop 1 物件導向 是乙個更大封裝,把乙個物件封裝多個方法 2 類 是對一些具有相同特徵或行為的事物的乙個統稱,是抽象的,不能直接使用 特徵被稱為屬性 行為被稱為方法 3 物件 是由類建立出來的乙個具體的存在,可以直接使用 先有類再有物件,類只有乙個,而物件可以有多個 類中...

python登入物件導向 python 物件導向

一 屬性和方法 1.a a 例項屬性 通過例項物件來新增的屬性就是例項屬性 a.count 10 例項方法都是在類中直接定義的 以self為第乙個引數的方法都是例項方法 當通過例項物件呼叫時,會自動傳遞當前物件作為self傳入 當通過類物件呼叫時,不會自動傳遞self a.test 等價於 a.te...