日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python心跳的实现_(python)面向对象

發布時間:2025/3/19 python 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python心跳的实现_(python)面向对象 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

函數式編程和面向對象對比

a. round 1 請開發一個消息提醒的功能(郵件/短信/微信)

defemail(em,text):"""發送郵件

:return:"""

print(em,text)defmsg(tel,text):"""發送短信

:return:"""

print(tel,text)defwechat(num,text):"""發送微信

:return:"""

print(num,text)#編寫功能:假設用戶購買課程,然后給alex發送提醒;

if 1==1:

msg('188888888','張進購買了一個學位課')

email('alex@sb.com','張進購買了一個學位課')

wechat('xxxx','張進購買了一個學位課')

函數

classMessage:defemail(self, em, text):"""發送郵件

:return:"""

print(em,text)defmsg(self, tel, text):"""發送短信

:return:"""

print(tel,text)defwechat(self, num, text):"""發送微信

:return:"""

print(num,text)#編寫功能:假設用戶購買課程,然后給alex發送提醒;

if 1==1:

obj=Message()

obj.email('alex@sb.com', '張進購買了一個學位課')

obj.msg('188888888','張進購買了一個學位課')

obj.wechat('xxxx','張進購買了一個學位課')

面向對象

初步對比:

函數:定義簡單/調用簡單

面向對象:定義復雜/調用復雜/ ?好處:歸類,將某些類似的函數寫在一起

總結:

1.函數式編程可能會比面向對象好.

2.python中支持的兩種編程方式

3.面向對象方式格式

定義: ? ?class 類名          定義了一個類

def ?函數名(self)     在類中編寫了一個"方法"

pass

調用:

x1 = 類名()          創建了一個對象/實例化了一個對象

x1.函數名()          通過對象調用其中一個方法

classAccount:deflogin(self):

user= input('請輸入用戶名:')

pwd= input('請輸入密碼:')if user == 'alex' and pwd == 'sb':print('登錄成功')else:print('登錄失敗')

obj=Account()

obj.login()

實例

a. round 2 打印

"""

完成以下功能:

老狗/20歲/男/上山去砍柴

老狗/20歲/男/開車去東北

老狗/20歲/男/喜歡大寶劍

"""

defkc(name,age,gender):

data= "%s,性別%s,今年%s歲,喜歡上山砍柴" %(name,gender,age)print(data)defdb(name,age,gender):

data= "%s,性別%s,今年%s歲,喜歡開車去東北" %(name,gender,age)print(data)defbj(name,age,gender):

data= "%s,性別%s,今年%s歲,喜歡大寶劍" %(name,gender,age)print(data)

kc('老狗',20,'男')

kc('老狗',20,'男')

db('老狗',20,'男')

bj('老狗',20,'男')

函數版本

classLaoGou:def __init__(self,name,age,gender): #特殊的方法,如果 類名() ,則該方法會被自動執行 (構造方法)

self.n1 =name

self.n2=age

self.n3=genderdefkc(self):

data= "%s,性別%s,今年%s歲,喜歡上山砍柴" %(self.n1,self.n3,self.n2)print(data)defdb(self):

data= "%s,性別%s,今年%s歲,喜歡開車去東北" %(self.n1,self.n3,self.n2)print(data)defbj(self):

data= "%s,性別%s,今年%s歲,喜歡大寶劍" %(self.n1,self.n3,self.n2)print(data)

obj= LaoGou('老狗',20,'男')

obj.kc()

obj.db()

obj.bj()

面向對象

總結:

1.構造方法

實例一:

classFoo:def __init__(self,name): 構造方法,目的進行數據初始化.

self.name=name

self.age= 18obj= Foo('侯明魏')

通過構造方法

通過構造方法,可以將數據進行打包,以后使用時,去其中獲取即可.

2.應用

a.將數據封裝到對象中,以供自己在方法中調用

classFileHandler:def __init__(self,file_path):

self.file_path=file_path

self.f= open(self.file_path, 'rb')defread_first(self):#self.f.read()

#...

pass

defread_last(self):#self.f.read()

#...

pass

defread_second(self):#self.f...

#...

passobj= FileHandler('C:/xx/xx.log')

obj.read_first()

obj.read_last()

obj.read_second()

obj.f.close()

封裝

b.將數據封裝到對象中,以供其他函數調用

1 defnew_func(arg):2 arg.k13 arg.k24 arg.k65

6 classFoo:7 def __init__(self,k1,k2,k6):8 self.k1 =k19 self.k2 =k210 self.k6 =k611

12 obj = Foo(111,22,333)13 new_func(obj)

=-=

練習:

1:用戶登錄

2:顯示當前的用戶信息

3:查看當前用戶所有賬單

4:購買姑娘形狀的抱枕

1 classUserInfo:2

3 def __init__(self):4 self.name =None5

6 definfo(self):7 print('當前用戶名稱:%s' %(self.name,))8

9 defaccount(self):10 print('當前用戶%s的賬單是:....' %(self.name,))11

12 defshopping(self):13 print('%s購買了一個人形抱枕' %(self.name,))14

15 deflogin(self):16 user = input('請輸入用戶名:')17 pwd = input('請輸入密碼:')18 if pwd == 'sb':19 self.name =user20 whileTrue:21 print("""

22 1. 查看用戶信息23 2. 查看用戶賬單24 3. 購買抱枕25 """)26 num = int(input('請輸入選擇的序號:'))27 if num == 1:28 self.info()29 elif num ==2:30 self.account()31 elif num == 3:32 self.shopping()33 else:34 print('序號不存在,請重新輸入')35 else:36 print('登錄失敗')37

38 obj =UserInfo()39 obj.login()

實例

面向對象的代碼如何編寫

a.規則

1 classFoo:2

3 def __init__(self,name):4 self.name =name5

6

7 defdetail(self,msg):8 print(self.name,msg)9

10 obj =Foo()11 obj.detail()

規范

b.什么時候寫,如何寫?

方法一:歸類+提取公共值

1 classFile:2 deffile_read(self,file_path):3 pass

4

5 deffile_update(self,file_path):6 pass

7

8 deffile_delete(self,file_path):9 pass

10

11 deffile_add(self,file_path):12 pass

13

14 classExcel:15 defexcel_read(self,file_path):16 pass

17

18 defexcel_update(self,file_path):19 pass

20

21 defexcel_delete(self,file_path):22 pass

23

24 defexcel_add(self,file_path):25 pass

歸類

1 classFile:2 def __init__(self,file_path):3 self.file_path =file_path4

5 deffile_read(self):6 pass

7

8 deffile_update(self):9 pass

10

11 deffile_delete(self):12 pass

13

14 deffile_add(self):15 pass

16

17 classExcel:18 def __init__(self,file_path):19 self.file_path =file_path20

21 defexcel_read(self):22 pass

23

24 defexcel_update(self):25 pass

26

27 defexcel_delete(self):28 pass

29

30 defexcel_add(self):31 pass

32

提取公共值

方法二:在指定類中編寫和當前類的所有相關代碼 + 提取公共值

1 classMessage:2 defemail(self):3 pass

4

5 classPerson:6 def __init__(self,na, gen, age, fig)7 self.name =na8 self.gender =gen9 self.age =age10 self.fight =fig11

12 defgrassland(self):13 self.fight = self.fight - 10

14

15 defpractice(self):16 self.fight = self.fight + 90

17

18 defincest(self):19 self.fight = self.fight - 666

20

21

22 cang = Person('蒼井井', '女', 18, 1000) #創建蒼井井角色

23 dong = Person('東尼木木', '男', 20, 1800) #創建東尼木木角色

24 bo = Person('波多多', '女', 19, 2500) #創建波多多角色

25

26 dong.grassland()

類代碼和公共值

面向對象的三大特性:封裝/繼承/多態

封裝:

將相關的功能封裝到一個類中:

classMessage:def emil(self):pass

def msg(self):pass

def wechat(self):pass

...

將數據封裝到一個對象中:

classMessage:def emil(self):pass

def msg(self):pass

def wechat(self):pass

...

繼承:

classSuperBase:deff3(self):print('f3')class Base(SuperBase): #父類,基類

deff2(self):print('f2')class Foo(Base): #子類,派生類

deff1(self):print('f1')

obj=Foo()

obj.f1()

obj.f2()

obj.f3()#原則:現在自己類中找,么有就去父類

=-=

總結:

1. 繼承編寫

class Foo(父類):

pass

2. 支持多繼承(先找左/再找右)

3. 為什么要有多繼承? 提供代碼重用性

多態:

多種形態或者多種狀態

由于python原聲支持多態,所以沒有特殊性

1 classFoo1:2 deff1(self):3 pass

4

5 classFoo2:6 deff1(self):7 pass

8

9 classFoo3:10 deff1(self):11 pass

12

13

14 deffunc(arg):15 arg.f1()16

17 obj = Foo1() #obj= Foo2() obj = Foo3()

18 func(obj)

python

classSon(list):pass

classSon1(list):pass

#以后傳參時,arg可以是:list類的對象/list任何子類的對象

public void func(list arg){print(arg)

}#obj = list()

#obj = Son()

obj =Son1()

func(obj)

java偽代碼

總結

以上是生活随笔為你收集整理的python心跳的实现_(python)面向对象的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。