Python面向对象三大特性之封装
面向函数的编程和面向对象编程对比
vim day7-2.py
#!/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
#!/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:以上功能可以使用装饰器实现