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窗口程序实例一
    内存容量出现异常的解决办法
    Android Studio 2.0使用指南
    Android 开机自启服务
    Android 图形总结
    今日课堂总结
    JSON
    GET方法和POST方法
    ajax的简单介绍
    网页-豌豆上的公主
  • 原文地址:https://www.cnblogs.com/minseo/p/6900120.html
Copyright © 2011-2022 走看看