码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2017-05-24 18:25:35      阅读:126      评论:0      收藏:0      [点我收藏+]

标签:alt   remove   对比   modify   img   log   装饰器   使用   连接   

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

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面向对象三大特性之封装

标签:alt   remove   对比   modify   img   log   装饰器   使用   连接   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!