首页 > 编程语言 > 详细

Python面向对象三大特性之封装

时间:2017-05-24 18:02:46      阅读:331      评论:0      收藏:0      [点我收藏+]

面向函数的编程和面向对象编程对比

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:以上功能可以使用装饰器实现

 

Python面向对象三大特性之封装

原文:http://www.cnblogs.com/minseo/p/6900120.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!