zoukankan      html  css  js  c++  java
  • 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:以上功能可以使用装饰器实现

  • 相关阅读:
    梅小雨 20180912-3 词频统计
    梅小雨20190912-2 命令行
    梅小雨20190905-1 每周例行报告
    梅小雨20190905-2 博客作业
    梅小雨20190905-3 命令行和控制台编程
    20190919-4 单元测试 结对
    20190919-2 功能测试
    20190919-1 每周例行报告
    20190919-6 四则运算试题生成
    20190919-5 代码规范
  • 原文地址:https://www.cnblogs.com/minseo/p/6900120.html
Copyright © 2011-2022 走看看