python入門3 物件導向

2021-08-09 00:08:15 字數 3596 閱讀 7912

構造方法

# coding=utf-8

class person:

i = 10

def eat(self):

print "hello world"

zhangsan = person()

zhangsan.eat()

# hello world

class p:

# def __init__(self):

# print "構造方法,建立物件"

def __init__(self,x):

print "構造方法,建立物件,x="+x

def eat(self, x , y):

print x+y

p('a').eat(1,2)

# 構造方法,建立物件,x=a

# 3

類方法、私有方法

# coding=utf-8

class person:

# 類方法

def eat(self):

print "吃飯"

self.__sleep()

# 私有方法(雙下劃線開始,只能內部呼叫)

def __sleep(self):

print "睡覺"

zs = person()

zs.eat()

# zs.__sleep() 呼叫不到

類屬性、私有屬性

class person:

# 類屬性

i = 10

# 私有屬性(雙下劃線開始,只能內部使用)

__j = 20

內建屬性

__name__

類的名字

__doc__類的文件字串

__bases__類的所有父類組成的元組

__dict__類的屬性組成的字典

__module__類所屬的模組

__class__類物件的型別

多繼承

class run3000:

def run(self):

print "run3000"

class ju***:

def jump(self):

print "ju***"

#多繼承

class sport(run3000 , ju***):

pass

sport = sport()

sport.run() #run3000

sport.jump() #ju***

class father:

def __init__(self):

print "father init"

def teach(self):

print "father teach"

class son(father):

def teach(self):

print "son teach"

zs = son() # father init

zs.teach() # son teach

如果父類構造帶參,則子類可以通過super呼叫父類方法,也可以不掉用只重寫,或者son("hello")

#新式類 newstyle python3.5不需要寫object

class father(object):

def __init__(self,i):

print "father init "+i

def teach(self):

print "father teach"

class son(father):

def __init__(self):super(son,self).__init__("hello")def teach(self):

print "son teach"

zs = son() # father init

zs.teach() # son teach

封裝……

多型……

物件導向程式設計

test1.py

class user:

def drive(self,car):

car.run()

class car:

def run(self):

print "car run"

test2.py  import匯入的是模組,呼叫的時候需要「模組點」

import test1 as t

bmw = t.car()

zs = t.user()

zs.drive(bmw)

test3.py from匯入的是具體類和方法,呼叫的時候直接呼叫

from test1 import user as u

from test1 import car

bmw = car()

zs = u()

zs.drive(bmw)

異常處理

def test(x,y):

print x/y

try:

test(1,0)

except zerodivisionerror:

print "run error: zero division"

except :

print "run error"

else:

print "run success"

finally:

print "finally"

自定義異常

class namenotfound(exception):

def __init__(self):

print "not found name"

def test(x):

if x == 0 :

raise namenotfound

檔案和流

# coding=utf-8

f = open("text.txt","r+")

print f.read()

f.close()

f = open("text-w.txt","w")

f.write("hello")

f.close()

import os

# os.remove("text-w.txt") # 刪除檔案

# os.mkdir("bf") # 建立資料夾

# os.rmdir("bf") # 刪除資料夾

print os.getcwd() # 獲取當前路徑

入門python 類與物件導向(3)

class people object age 10 資料屬性 def init self,name 函式屬性 建構函式 self.name name def say self 函式屬性 析構函式 print good bye s self.name a people guo a.name guo ...

python 物件導向 3

析構函式 例項被銷毀時候自動呼叫的方法,例如關閉資料庫,可以將關閉資料庫的 寫到析構函式裡 class person def init self print 建構函式 def del self 例項被銷毀的時候自動呼叫的函式 print 析構函式 deftell self print 說話 del ...

Python入門 物件導向

物件 有具體特徵和行為操作的事物 有具體 特徵 屬性和 行為 方法的物件 將物件行為特徵抽象化用 表示 1 還原生活場景 簡單的 操作 基礎語法,堆疊功能 變數 資料型別 運算 if while 函式式程式設計 將所有要處理的事情,開始封裝成具備一定處理功能的函式,呼叫執行 2 面向過程程式設計 開...