python繼承

為什么80%的碼農都做不了架構師?>>> hot3.png

  • #繼承
    #衍生的類(子類)繼承父類的方法和數據成員
    #語法:
    # class 子類:父類
    # {......}
    #子類繼承父類,父類派生子類。父類又叫基類,子類又叫派生類
    class Vehicle:def __init__(self,name):self.name ='';print('交通工具被初始化  創建出來');def run(self):print('交通工具在行駛...');def show(self):print('車的名字是%s' % self.name);
    class Truck(Vehicle):#子類(父類);繼承語法def __init__(self,name,weith):#子類的構造方法應該包含父類和子類的共同屬性#Vehicle.name = name;  # 1、調用父類屬性,在__init__()方法中使用父類.屬性self.name = name;  # 2、調用父類屬性,在__init__()方法中使用self.屬性或父類#Vehicle.__init__(self.name);#1、調用父類方法 __init__(self,參數)# super(Vehicle, self).__init__(name);#2、1、調用父類方法 super(父類,self).__init__(參數)self.weith=weith;print('卡車被初始化  創建出來');
    #方法重寫def run(self):Vehicle.show(self);print('%s卡車載重%d噸 行駛中...'%(self.name,self.weith));
    class Trian(Vehicle):def __init__(self,name,nums):self.nums=nums;def run(self):print('火車在軌道上行駛...');t=Truck('東風',15);
    t.run();
  • class cixunfu:def run(self):print('在磁懸浮軌道上行駛..')class student:def goHome(self,vehicle):vehicle.run()print('學生在回家的途中...')class tui:def run(self):print('2條腿兒在行駛...')
    # c=Trian('京滬高鐵',30);
    # c.run();
    # ok=Trian('馬航730',30);
    daizhong=tui();
    xinpeng=student();
    xinpeng.goHome(daizhong);

寵物看病

  • #寵物看病
    class pet:def kanbing(self):print('給寵物看病...');
    class Car(pet):def kanbing(self):print('給貓咪看病 吃藥,吃小黃魚..');
    class  Dog(pet):def kanbing(self):print('給狗狗看病 輸液,吃骨頭..');
    class bird(pet):def kanbing(self):print('給小鳥看病 拔罐,吃蟲子..');
    class pig(pet):def kanbing(self):print('給小豬看病 針灸,吃豬糧..');
    class ShouVet:def JiuZhen(self,pet):print('獸醫出診..給寵物看病..');pet.kanbing();dingdang=Car();
    kala=Dog();
    huangli=bird();
    peiqi=pig();
    syi=ShouVet();syi.JiuZhen(dingdang);
    syi.JiuZhen(kala);
    syi.JiuZhen(huangli);
    syi.JiuZhen(peiqi);
  • # isinstance()函數:判斷是否是繼承關系
    print('kala is Dog:',isinstance(kala,Dog));

計算器

  • #計算器
    class Operation:def __init__(self,numA,numB):self.numA=numA;self.numB=numB;def GetResult(self):print('計算2操作數的運算結果');class OpeartionAdd(Operation):def __init__(self,numA,numB):super(OpeartionAdd, self).__init__(numA,numB);def GetResult(self):return self.numA+self.numB;class OpeartionSub(Operation):def __init__(self,numA,numB):# super(OpeartionSub, self).__init__(numA,numB);super(OpeartionSub, self).__init__(munA,numB);def GetResult(self):return self.numA-self.numB;class OpeartionMul(Operation):def __init__(self,numA,numB):super(OpeartionMul, self).__init__(numA,numB);def GetResult(self):return self.numA*self.numB;class OpeartionDiv(Operation):def __init__(self,numA,numB):super(OpeartionDiv, self).__init__(numA,numB);def GetResult(self):return self.numA//self.numB;if __name__=='__main__':numA=int(input('請輸入第一個操作數:'));numB=int(input('請輸入第二個操作數:'));fu=input('請輸入運算符:');q=None;#未賦值的變量 代表一個計算器if fu=='+':q=OpeartionAdd(numA,numB);elif fu=='-':q = OpeartionSub(numA, numB);elif fu == '*':q = OpeartionMul(numA, numB);elif fu == '/':q = OpeartionDiv(numA, numB);else:print('輸入錯誤');print('計算結果:',q.GetResult())
  • 計算器 ?工廠類
  • #計算器  工廠類
    class Operation:def __new__(cls):passdef GetResult(self,numA, numB):print('計算2操作數的運算結果')class OpeartionAdd(Operation):def __new__(cls):return object.__new__(cls);#return  Operation.__new__(cls)def GetResult(self,numA,numB):return  numA+numBclass OperationSub(Operation):def GetResult(self,numA,numB):return  numA-numBclass OperationMul(Operation):def GetResult(self,numA,numB):return  numA*numB
    class OperationDiv(Operation):def GetResult(self,numA,numB):return  numA//numBclass OperationFactory(object):#不同的參數創建不同的對象的  函數def create_class(self,fu):if fu == '+':q = OpeartionAdd();elif fu == '-':q = OperationSub();elif fu == '*':q = OperationMul();elif fu == '/':q = OperationDiv();return q;if __name__== '__main__':#工廠對象factory=OperationFactory();numA=int(input('請輸入第一個操作數'))numB=int(input('請輸入第二個操作數'))fu = input('請輸入運算符:')# q代表 由 工廠創建出來的一個計算器q=factory.create_class(fu)print('計算結果:',q.GetResult(numA, numB))

單例模式:該模式主要目的是確保某一個類只有一個實例存在

  • class singleton:#借助第三方變量__instance=None;def __new__(cls, *args, **kwargs):if cls.__instance==None:cls.__instance=object.__new__(cls);return cls.__instance;else:return cls.__instance;
    s=singleton();
    print(id(s));
    s1=singleton();
    print(id(s1));
  • 借助第三方變量更改兩個值的位置
  • a,b=10,5;
    c=a;#借助第三方變量更改兩個值的位置
    a=b;
    b=c;
    print(a,b);

轉載于:https://my.oschina.net/u/3764483/blog/1618193

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/539454.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/539454.shtml
英文地址,請注明出處:http://en.pswp.cn/news/539454.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

cpu散熱器怎么拆_電腦CPU處理器與整機溫度高 教你簡單解決

炎炎夏日,電腦卡、慢、死機、關機多數是中央處理器(以下簡稱CPU)溫度過高引起的。如果有上述感覺,那么你很可能就是這個病癥。第一步、需要確定真正是否為溫度高的問題,先不要著急拆機,軟件測試,一般用百度搜索《魯大師…

MyEclipse里運行Tomcat后,Console窗口里中文顯示亂碼

windows-preferences-搜索tomcat 修改為 UTF-8 或 gbk

linux查看raid情況工具,使用MegaCli工具查看Raid磁盤陣列狀態

轉載自:http://home.51.com/chenjianghui1987/diary/item/10051836.html文章本身我不做過多修改了,在這里我就把自己在安裝時候碰到的難點跟大家提下。1.何處下載?首先,根據文章中的路徑已經下載不到相應的文件了,在此…

Myeclipse 更改web項目的訪問名

第一步:在要修改的項目名稱上右擊選擇最下面一列的”prepertise“(屬性),進入屬性設置界面。 第二步:找到左側菜單欄的”Myeclipse“中的web項,設置”Web Context -root“值,之后點擊”ok“按鈕…

年底送書活動:送出6本技術書籍,價值372元!

年底了 為了回饋公眾號粉絲 特別贈送6本新書 它就是&#xff01;&#xff01;&#xff01; <RabbitMQ實戰指南> 最近在做消息隊列 正好看到此書 收益良多 正好推薦給大家 感謝原書作者支持3本 另外~ 本人自費購買了3本 一共6本 免費送給大家 總價值&#xff1a;62*6&…

終端不能聯網_5G和物聯網DDA的關系

多年以來&#xff0c;物聯網一直是一個大家耳熟能詳又不知為何物的東西&#xff0c;而物聯網的定義也隨著技術的進步和應用場景的改變而不斷的變化和演化。以前&#xff0c;物聯網WLAN物聯網(就是WiFi、藍牙、ZigBee...)。而如今物聯網WLAN物聯網蜂窩物聯網(2/3/4G、NB、LoRa、…

linux磁盤fio壓力測試,fio進行磁盤壓力測試

fio可以用來測試磁盤IO常用的參數如下&#xff1a;filename/dev/emcpowerb 支持文件系統或者裸設備&#xff0c;-filename/dev/sda2或-filename/dev/sdbdirect1 測試過程繞過機器自帶的buffer&#xff0c;使測試結果更真實rwrandwread 測試隨機讀的…

SpringMVC 實例 --非注解【過時的,留作回憶】

練習項目&#xff1a;test SpringMVC 實例 --非注解&#xff0c;只用于學習理解。到了spring 3.0以后或許部分東西已經過時了&#xff0c;在實際工作中并不一定好用。 但對于理解SpringMVC的實現方式很有幫助&#xff0c;在以后使用注解時&#xff0c;會明白是怎么個來龍去脈&a…

云場景實踐研究第27期:袋鼠云

更多云場景實踐研究案例&#xff0c;點擊這里&#xff1a;【云場景實踐研究合集】聯合不是簡單的加法&#xff0c;而是無限的生態&#xff0c;誰會是下一個獨角獸 隨著網站論壇粉絲數高漲&#xff0c;原有系統架構和服務器性能已無法滿足熱情高漲的粉絲需求。同時&#xff0c;網…

怎么在電腦上看磁盤分配單元的大小_電腦磁盤到底該不該分區?怎么分區?

“哥&#xff0c;在嗎&#xff1f;在你家新買的adolbook14 2020怎么只有一個C盤啊?”“電腦磁盤怎么重新分區啊&#xff1f;在線等&#xff01;急&#xff01;”“本電腦小白可太驕傲了&#xff0c;我居然自己給電腦磁盤分區了&#xff0c;一通操作猛如虎&#xff01;”……那…

嵌入式Linux初始化硬件RTC,嵌入式Linux系統中的快速啟動技術研究

嵌入式Linux系統主要特點在于使用Bootloader替代了桌面系統的BIOS&#xff0c;同時對系統進行了規模上的裁剪&#xff0c;但硬件上的劣勢往往導致系統啟動速度較慢&#xff0c;而嵌入式產品使用者又對系統的開機速度比較敏感&#xff0c;樣就產生了對于提高嵌入式Linux系統啟動…

Ajax總結

Ajax的核心技術是XMLHttpRequest對象,它可以在不向服務器提交整個頁面的情況下&#xff0c;實現局部更新網頁。通過這個對象&#xff0c;Ajax可以像桌面應用程序那樣只與服務器進行數據層的交換&#xff0c;而不必每次都刷新界面&#xff0c;也不必每次將數據處理的工作都交給服…

SpringMVC訪問靜態資源的三種方式

如何你的DispatcherServlet攔截 *.do這樣的URL&#xff0c;就不存在訪問不到靜態資源的問題。如果你的DispatcherServlet攔截“/”&#xff0c;攔截了所有的請求&#xff0c;同時對*.js,*.jpg的訪問也就被攔截了。 目的&#xff1a;可以正常訪問靜態文件&#xff0c;不要找不到…

電腦如何進入bios模式_華碩筆記本電腦開機自動進入BIOS界面怎么辦?

最近很多人的華碩牌子筆記本有問題&#xff0c;說自己開機就直接進入BIOS了。對于這些小白來說&#xff0c;一臉懵逼啊&#xff0c;不知道怎么解決&#xff0c;其實大家也不要著急&#xff0c;堅哥來簡單幫大家分析一下。第一、可能系統的文件被更改&#xff0c;從而導致無法啟…

springmvc在controller和視圖之間傳遞參數

從視圖向controller傳遞值&#xff0c; controller <--- 視圖 1&#xff09;簡單類型&#xff0c;如int, String, 應在變量名前加RequestParam注解&#xff0c;例如&#xff1a; RequestMapping("hello3")public String hello3( RequestParam("name" …

蘋果手機怎么清理聽筒灰塵_怎么清理手機聽筒的灰塵?

作為一個專業的強迫癥從業者&#xff0c;我已經看不慣手機聽筒的灰塵很久了&#xff0c;在經歷無數次失敗之后&#xff08;針&#xff0c;牙刷&#xff0c;牙簽&#xff0c;吸塵器等等&#xff09;。我必須要來分享一個超級實用的方法清理手機聽筒的灰塵。那就是&#xff0c;起…

linux mrtg 命令,linux服務器之流量監控(MRTG)

本系列文章原則&#xff1a;灰常詳細&#xff0c;灰常簡單&#xff0c;新手包學包會&#xff01;因其簡單&#xff0c;故未涉及安全性方面的考慮呵&#xff01;本實驗服務器為rhel-5-server-i386&#xff0c;客戶端為windows xp。本實驗所用軟件包均在rhel-5-server-i386-dvd.i…

搭建網站必不可少的知識14

安全組配置 “操作”-“安全組配置” 單擊“內網入方向”&#xff0c;“添加安全組規則”默認配置即可“確定”。在公網入方向和公網出方向都這樣添加上。&#xff08;如果存在就先刪除后在添加&#xff09;。現在應該能登錄了。 輸入密碼&#xff0c;點擊“確定” 登錄后只有一…

8代cpu能跑linux,Intel公布6/7/8代桌面CPU打漏洞補丁性能結果:影響很小

今天&#xff0c;Intel執行副總裁數據、數據中心事業部總經理Navin Shenoy(孫納頤)發布了第二篇性能測試文章&#xff0c;針對客戶端也就是桌面平臺用戶在打上修復“Spectre”和“Meltdown”漏洞補丁之后的實際情況。對于大部分普通電腦用戶來說&#xff0c;性能的影響并不顯著…

Spring mvc interceptor配置攔截器

原文&#xff1a;http://blog.csdn.net/liyisong2008/article/details/42915715 -------------------------------------------------------------------------- xml代碼&#xff1a; [java] view plaincopy <?xml version"1.0" encoding"UTF-8"?>…