日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

Python面向?qū)ο缶幊獭偨Y(jié)面向?qū)ο蟮膬?yōu)點

系統(tǒng) 1764 0

Python面向?qū)ο缶幊獭偨Y(jié)面向?qū)ο蟮膬?yōu)點

一、從代碼級別看面向?qū)ο?

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

          
            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

#每次調(diào)用都需要重復(fù)傳入一堆參數(shù)
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的思路,我們將會定義一大堆全局變量,這些全局變量并沒有做任何區(qū)分,即能夠被所有功能使用,然而事實上只有HOST,PORT,DB,CHARSET是給exc1和exc2這兩個功能用的。言外之意:我們必須找出一種能夠?qū)?shù)據(jù)與操作數(shù)據(jù)的方法組合到一起的解決方法,這就是我們說的類了。

          
            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('存儲過程的名字')
          
        

總結(jié)使用類可以:

          
            將數(shù)據(jù)與專門操作該數(shù)據(jù)的功能整合到一起。
          
        

二、可擴展性高

定義類并產(chǎn)生三個對象

          
            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()
          
        

更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

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

【本文對您有幫助就好】

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

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 罗山县| 资兴市| 读书| 都兰县| 延庆县| 开江县| 扶风县| 昌都县| 旅游| 建水县| 平昌县| 三江| 渭南市| 绥江县| 济宁市| 姜堰市| 莱阳市| 新龙县| 如东县| 房山区| 宜黄县| 崇礼县| 荣成市| 武宣县| 张家口市| 江油市| 金湖县| 绥芬河市| 南部县| 衡阳县| 沙河市| 白城市| 泰安市| 姜堰市| 岢岚县| 精河县| 隆德县| 天全县| 济阳县| 互助| 江山市|