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

  • 相关阅读:
    java 学习之JVM深入分析(一)
    选择排序算法实现十个1100的随机数的排序
    spring基础知识概述
    mybatis 总结一
    ACM之java判断回文数
    Spring mvc框架
    C#实现窗体最小化到状态栏,双击运行时又能正常显示窗体
    Android调用相机并将照片存储到SD卡上实现方法
    c#中如何让一个窗体在另一个旁边
    C#实现获取时间
  • 原文地址:https://www.cnblogs.com/minseo/p/6900120.html
Copyright © 2011-2022 走看看