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

  • 相关阅读:
    关于SOA和AOP
    网络通信
    网络层ddos与应用层ddos区别
    python 模块发布及使用
    安全等级划分依据与应急响应流程
    ssl与ssh
    列表计数及插入
    博客首语
    聊聊当今市面上的国产耳机
    “互联网+”背景下使用微信公众号增强班主任工作与整合教学资源(泰微课)
  • 原文地址:https://www.cnblogs.com/minseo/p/6900120.html
Copyright © 2011-2022 走看看