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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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:以上功能可以使用装饰器实现

 

以上是关于Python面向对象三大特性之封装的主要内容,如果未能解决你的问题,请参考以下文章

Java中面向对象的三大特性之封装

Python 入门 之 面向对象的三大特性(封装 / 继承 / 多态)

面向对象之:三大特性:继承(已讲),封装,多态

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

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

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