Python面向对象三大特性之封装
面向函数的编程和面向对象编程对比
vim day7-2.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | #!/usr/bin/python # -*- coding:utf-8 -*- def Bar(): print 'Bar' def Hello(name): print 'I am %s' % name class Foo: def Bar( self ): print 'Bar' def Hello( self ,name): print 'I am %s' % name Bar() Hello( 'liuyueming' ) obj = Foo() obj.Bar() obj.Hello( 'liuyueming' ) |
通过函数和对象的方法实现同样的功能,看起来是面向函数的编程比较简单
假如是连接数据库的增,删,改,查操作使用面向对象的方法代码更加简单
vim day7-3.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | #!/usr/bin/python # -*- coding:utf-8 -*- def fetch(): #连接数据库,hostname,port,username,password,db,timeout... #打开 #操作 #关闭 def modify(): #连接数据库,hostname,port,username,password,db,timeout... #打开 #操作 #关闭 def remove(): #连接数据库,hostname,port,username,password,db,timeout... #打开 #操作 #关闭 def create(): #连接数据库,hostname,port,username,password,db,timeout... #打开 #操作 #关闭 ###方式二 class Foo: def __init__( self ,hostnama,port,username,password,db,[ 11 , 22 , 33 ]): self .hostname = hostname self .port = port #... def fetch( self ): pass def modify( self ): pass def create( self ): pass def removeself): pass obj = Foo(hostnama,port,username,password,db,[ 11 , 22 , 33 ]) obj.fetch(hostnama,port,username,password,db,[ 11 , 22 , 33 ]) |
可以obj1 obj2等进行类的实例化,把不同的主机或端口封装在不同的类里面
把变量值封装到对象里面,使用的时候使用self调用
PS:以上功能可以使用装饰器实现
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!