亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Python面向對象編程——總結面向對象的優點

系統 1761 0

Python面向對象編程——總結面向對象的優點

一、從代碼級別看面向對象

1、在沒有學習類這個概念時,數據與功能是分離的

          
            def exc1(host,port,db,charset):
    conn=connect(host,port,db,charset)
    conn.execute(sql)
    return xxx


def exc2(host,port,db,charset,proc_name)
    conn=connect(host,port,db,charset)
    conn.call_proc(sql)
    return xxx

#每次調用都需要重復傳入一堆參數
exc1('127.0.0.1',3306,'db1','utf8','select * from tb1;')
exc2('127.0.0.1',3306,'db1','utf8','存儲過程的名字')
          
        

2、我們能想到的解決方法是,把這些變量都定義成全局變量

          
            HOST=‘127.0.0.1’
PORT=3306
DB=‘db1’
CHARSET=‘utf8’

def exc1(host,port,db,charset):
    conn=connect(host,port,db,charset)
    conn.execute(sql)
    return xxx


def exc2(host,port,db,charset,proc_name)
    conn=connect(host,port,db,charset)
    conn.call_proc(sql)
    return xxx

exc1(HOST,PORT,DB,CHARSET,'select * from tb1;')
exc2(HOST,PORT,DB,CHARSET,'存儲過程的名字')
          
        

3、但是2的解決方法也是有問題的,按照2的思路,我們將會定義一大堆全局變量,這些全局變量并沒有做任何區分,即能夠被所有功能使用,然而事實上只有HOST,PORT,DB,CHARSET是給exc1和exc2這兩個功能用的。言外之意:我們必須找出一種能夠將數據與操作數據的方法組合到一起的解決方法,這就是我們說的類了。

          
            class MySQLHandler:
    def __init__(self,host,port,db,charset='utf8'):
        self.host=host
        self.port=port
        self.db=db
        self.charset=charset
        self.conn=connect(self.host,self.port,self.db,self.charset)
    def exc1(self,sql):
        return self.conn.execute(sql)

    def exc2(self,sql):
        return self.conn.call_proc(sql)


obj=MySQLHandler('127.0.0.1',3306,'db1')
obj.exc1('select * from tb1;')
obj.exc2('存儲過程的名字')
          
        

總結使用類可以:

          
            將數據與專門操作該數據的功能整合到一起。
          
        

二、可擴展性高

定義類并產生三個對象

          
            class Chinese:
    def __init__(self,name,age,sex):
        self.name=name
        self.age=age
        self.sex=sex


p1=Chinese('egon',18,'male')
p2=Chinese('alex',38,'female')
p3=Chinese('wpq',48,'female')
          
        

如果我們新增一個類屬性,將會立刻反映給所有對象,而對象卻無需修改

          
            class Chinese:
    country='China'
    def __init__(self,name,age,sex):
        self.name=name
        self.age=age
        self.sex=sex
    def tell_info(self):
        info='''
        國籍:%s
        姓名:%s
        年齡:%s
        性別:%s
        ''' %(self.country,self.name,self.age,self.sex)
        print(info)


p1=Chinese('egon',18,'male')
p2=Chinese('alex',38,'female')
p3=Chinese('wpq',48,'female')

print(p1.country)
p1.tell_info()
          
        

更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 爱视频福利网 | 欧美中文字幕在线视频 | 国产人做人爱免费视频 | 香蕉视频18 | 伊人久久国产免费观看视频 | 亚洲成色综合一区二区三区四区 | 亚洲精品一区二区 | 一级做a爱片久久毛片 | 婷婷在线免费视频 | 亚洲视频 在线观看 | 国产欧美一区二区三区精品 | 久久视频免费在线观看 | 有色视频在线观看免费高清 | 欧美成人性视频播放 | 欧美专区一区二区三区 | 男女www| 伊人色美文情网址 | 99爱视频免费高清在线观看 | 亚洲精品精品 | 成年性午夜免费视频网站不卡 | 一级黄色毛片免费看 | 亚洲国产成人久久精品影视 | 久久www免费人成精品香蕉 | 米奇精品一区二区三区 | 伊人久久大香线焦综合四虎 | 最新国产在线 | 国产精品国产三级国产普通话 | 日产精品久久久一区二区 | 色综合久久久久久中文网 | 日本精品一区二区三区视频 | 日本大黄视频 | 久久久久日韩精品无 | 久久免费视频网 | 久草视频中文 | 亚洲高清综合 | 国产精品亚洲欧美日韩一区在线 | 国产精品久久成人影院 | 色www 永久免费网站 | 国产69精品久久久久777 | 国产精品免费福利 | 亚洲视频在线观看地址 |