99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁(yè)精彩閱讀python類(lèi)定義的講解
python類(lèi)定義的講解
2017-08-17
收藏

python類(lèi)定義的講解

python是怎么定義類(lèi)的,看了下面的文章大家就會(huì)了,不用多說(shuō),開(kāi)始學(xué)習(xí)。

一、類(lèi)定義:

代碼如下:

class <類(lèi)名>:

<語(yǔ)句>

類(lèi)實(shí)例化后,可以使用其屬性,實(shí)際上,創(chuàng)建一個(gè)類(lèi)之后,可以通過(guò)類(lèi)名訪問(wèn)其屬性。如果直接使用類(lèi)名修改其屬性,那么將直接影響到已經(jīng)實(shí)例化的對(duì)象

類(lèi)的私有屬性:
  __private_attrs  兩個(gè)下劃線開(kāi)頭,聲明該屬性為私有,不能在類(lèi)地外部被使用或直接訪問(wèn)。在類(lèi)內(nèi)部的方法中使用時(shí) self.__private_attrs
類(lèi)的方法
  在類(lèi)地內(nèi)部,使用def關(guān)鍵字可以為類(lèi)定義一個(gè)方法,與一般函數(shù)定義不同,類(lèi)方法必須包含參數(shù)self,且為第一個(gè)參數(shù)

私有的類(lèi)方法
  __private_method 兩個(gè)下劃線開(kāi)頭,聲明該方法為私有方法,不能在類(lèi)地外部調(diào)用。在類(lèi)的內(nèi)部調(diào)用slef.__private_methods
類(lèi)的專(zhuān)有方法:
__init__  構(gòu)造函數(shù),在生成對(duì)象時(shí)調(diào)用
__del__   析構(gòu)函數(shù),釋放對(duì)象時(shí)使用
__repr__ 打印,轉(zhuǎn)換
__setitem__按照索引賦值
__getitem__按照索引獲取值
__len__獲得長(zhǎng)度
__cmp__比較運(yùn)算
__call__函數(shù)調(diào)用

__add__加運(yùn)算
__sub__減運(yùn)算
__mul__乘運(yùn)算
__div__除運(yùn)算
__mod__求余運(yùn)算
__pow__稱(chēng)方

代碼如下:
#類(lèi)定義 
    class people: 
        #定義基本屬性 
        name = '' 
        age = 0 
        #定義私有屬性,私有屬性在類(lèi)外部無(wú)法直接進(jìn)行訪問(wèn) 
        __weight = 0 
        #定義構(gòu)造方法 
        def __init__(self,n,a,w): 
            self.name = n 
            self.age = a 
            self.__weight = w 
        def speak(self): 
            print("%s is speaking: I am %d years old" %(self.name,self.age)) 
     
    p = people('tom',10,30) 
    p.speak()

二、繼承類(lèi)定義:

1.單繼承

代碼如下:

class <類(lèi)名>(父類(lèi)名)

   <語(yǔ)句>

代碼如下:

class childbook(book)

    age = 10
代碼如下:
#單繼承示例 
    class student(people): 
        grade = '' 
        def __init__(self,n,a,w,g): 
            #調(diào)用父類(lèi)的構(gòu)函 
            people.__init__(self,n,a,w) 
            self.grade = g 
        #覆寫(xiě)父類(lèi)的方法 
        def speak(self): 
            print("%s is speaking: I am %d years old,and I am in grade %d"%(self.name,self.age,self.grade))      

    s = student('ken',20,60,3) 
    s.speak()

2.類(lèi)的多重繼承

代碼如下:
class 類(lèi)名(父類(lèi)1,父類(lèi)2,....,父類(lèi)n)
     <語(yǔ)句1>

需要注意圓括號(hào)中父類(lèi)的順序,若是父類(lèi)中有相同的方法名,而在子類(lèi)使用時(shí)未指定,python從左至右搜索,即方法在子類(lèi)中未找到時(shí),從左到右查找父類(lèi)中是否包含方法

代碼如下:

#另一個(gè)類(lèi),多重繼承之前的準(zhǔn)備 
class speaker(): 
    topic = '' 
    name = '' 
    def __init__(self,n,t): 
        self.name = n 
        self.topic = t 
    def speak(self): 
        print("I am %s,I am a speaker!My topic is %s"%(self.name,self.topic)) 

#多重繼承 
class sample(speaker,student): 
    a ='' 
    def __init__(self,n,a,w,g,t): 
        student.__init__(self,n,a,w,g) 
        speaker.__init__(self,n,t) 

test = sample("Tim",25,80,4,"Python") 
test.speak()#方法名同,默認(rèn)調(diào)用的是在括號(hào)中排前地父類(lèi)的方法



數(shù)據(jù)分析咨詢(xún)請(qǐng)掃描二維碼

若不方便掃碼,搜微信號(hào):CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢(xún)
客服在線
立即咨詢(xún)
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機(jī)數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進(jìn)行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個(gè)參數(shù)驗(yàn)證碼對(duì)象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個(gè)配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺(tái)檢測(cè)極驗(yàn)服務(wù)器是否宕機(jī) new_captcha: data.new_captcha, // 用于宕機(jī)時(shí)表示是新驗(yàn)證碼的宕機(jī) product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說(shuō)明請(qǐng)參見(jiàn):http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計(jì)時(shí)完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請(qǐng)輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請(qǐng)輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }