css不繼承父類樣式_提升你的Python編程能力,細說類的繼承,拿走不謝

今天咱們聊點啥呢?要不還是聊點Python基礎的東東吧,大家已經都知道啦,Python呢是一種面向對象的腳本編程語言,那面向對象的編程語言呢,都會支持面向對象的三大特性,你知道是哪三大特性嗎?當然是咱們常常掛在嘴邊的封裝、繼承和多態啦,那今天呢,咱們就先說個用得最多的繼承吧,好啦,就重點講講Python相關的類的繼承啦!

好啦,那咱們就開始聊聊吧!


Python類的定義

首先開門見山說一下哦,Python的類的繼承是支持多繼承機制的。

那Python的類的繼承是怎樣的呢?其實呢,Python的類繼承很簡單哦,就是在定義子類時,將多個父類放在子類后面的圓括號中就可以啦!語法格式如下所示哦:

class SubClass (SuperClass1, SuperClass2, ...)

看到了嗎,Python類的繼承定義的格式是不是很簡單哦!只要在子類的后面加個圓括號,然后在括號里面添加上所要繼承的父類就可以啦!

其實呢,Python類和其他面向對象語言是一樣滴,如果不顯示定義繼承一個父類,也是有個默認的公共父類哦,它就是object類,所以呀,object類是所有Python類的父類哦,有兩種可能哦,一種可能是其直接父類,另一種可能呢當然就是其間接父類啦!

其實呢,如果從Python子類和其父類兩個角度來看的話,是兩種不同的效果哦,子類呢就相當于對父類進行了擴展啦,而父類呢則是派生出子類啦!

好啦,為了讓大家對Python類的繼承有深入的理解,咱們還是老規矩啦,舉個“栗子”:

a6ce3eaa47ae6c86148adb4c9802c6f9.png

好啦,看到了嗎,上面的“栗子”程序中呢,定義了兩個父類,分別是Animal類和Pig類哦,然后呢,定義了一個子類Peggy,它繼承了兩個父類,這個Peggy子類呢并木有定義自己的程序單元哦,所以就用pass代替啦!

這樣,當主程序創建了Peggy類對象后呢,就可以訪問Peggy類中的對象啦,分別是繼承自父類Animal的info()方法和繼承自Pig類的taste()方法,這就是繼承的強大作用,就是相當于子類Peggy擴展了父類Animal和Pig哦。

好啦,咱們運行一下上面這個“栗子”看看結果吧:

b0c5bb4fc1cb2207bf2813d6ac8368fa.png

Python的多繼承

前面咱們說啦,Python是支持多繼承的,但是呢,還是不建議大家用哦,因為多繼承干的活單繼承都能干哦,而且,單繼承在流程和思路來說更為清晰和易懂哦!

到這可能大家有問題啦:人家Python自身都支持多繼承啦,你為啥還不推薦大家用呢,存在和支持就是有道理的啊?好啦,為了解答大家的這個疑惑,咱們就來聊聊多繼承的弊端吧!

首先呢,咱們來假定一個場景,就是哈,當一個子類有多個直接父類,也就是多繼承的話,這個子類呢就會繼承得到它的所有父類的方法哦,這是大家所清楚的,但是呢,如果這個子類所繼承的多個父類中存在同名的方法時呢,這時會出現什么情況呢?在這呢,俺先賣個關子,咱們還是老慣例,舉個“栗子”讓大家看看啦,這樣印象更深刻哦!

c28d11a6fa7c61562131300125ef96d2.png

好啦,看到上面這個“栗子”了嗎,咱們分別定義了兩個父類SuperClass1和SuperClass2,這兩個父類呢,有個共同點,就是包含相同的info()方法哦,這是咱們再定義一個繼承了這兩個父類的子類SubClass,這時呢,咱們再主程序中創建了子類SubClass的對象,然后用子類對象sc去調用info()方法,你們猜這是會發生什么情況呢?

可以運行一下看看哦:

01eeba778eb61cd5754227fd6f032784.png

看到了嗎,運行后輸出的是父類SuperClass1中的info()方法!在這先不給大家解釋哦,咱們修改一下上面的“栗子”,將SubClass子類所繼承的兩個父類的順序調換一下,看看結果如何哦,程序就編程如下樣式啦:

5460a7871cbe381a9d96bb01ac2f3c98.png

將兩個父類的繼承順序進行了位置調換哦,這時咱們再運行看看結果如何哦:

9c9a8f20d8d7c0eefb75d41a3cfe7eef.png

看到了嗎,這時輸出的是父類SuperClass2中的info()方法哦!

好啦,到這呢,可能已經由朋友看明白了,其實呢,在Python的多繼承中,如果子類所繼承的父類中出現了相同的方法,這時就會和子類所繼承的父類的順序有關哦,排在前面的父類中的方法就會遮蓋排在后面的父類中的方法哦!當然啦,如果子類所繼承的父類中沒有相同的方法,就和父類的順序沒有關系啦,因為子類所調用的父類的方法會按所繼承的父類的順序查找,這時父類因為沒有相同的方法,也就是方法是唯一的,它就是找到這個方法所在的父類,然后進行調用哦!對于這點大家一定要牢記哦!

好啦,關于Python多繼承的弊端,相信大家通過上面的介紹已經深刻理解了哈,因此呢,還是建議大家盡量少用多繼承哦!

好啦,今天關于Python的類繼承相關的東東就先和大家聊這么多吧,咱們下次再見哦![再見]


敬請關注“品位集結號”,為您帶來意外的小知識![比心][握手][比心]

4d8168a23af313dadc015f03c90398c7.png

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

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

相關文章

R 回歸 虛擬變量na_【R語言進階】Logistic回歸及啞變量設置

點擊上方“藍字”,我們一起分析數據Logistic回歸是最常用的多因素回歸模型,在醫學研究中,常用于研究疾病的危險因素,下面我們一起來看看,R語言是如何實現Logistic回歸的。1第一步 導入數據首先,在excel里全選數據集,右鍵復制。然后&#xff0…

oracle快捷語句框架中,Oracle框架:PL/SQL編程:

PL/SQL編程一:什么是PL/SQL(1.)PL/SQL體系結構:PL/SQL引擎用來編譯和執行,PL/SQL塊或子程序,該引擎駐留在Oracle服務器中。(2.)PL/SQL塊簡介PL/SQL是一種塊結構語音,它將一組語句塊放在一個快中。(3.)運算符和表達式&a…

logisticregression參數_通俗地說邏輯回歸【Logistic regression】算法(二)sklearn邏輯回歸實戰...

前情提要:通俗地說邏輯回歸【Logistic regression】算法(一) 邏輯回歸模型原理介紹上一篇主要介紹了邏輯回歸中,相對理論化的知識,這次主要是對上篇做一點點補充,以及介紹sklearn 邏輯回歸模型的參數&#…

tensorflow適用于python版本_tensorflow用python哪個版本更好?

tensorflow用python哪個版本?一、安裝anaconda tensorflow是基于python腳本語言的,因此需要安裝python, 當然還需要安裝numpy、scipy、six、matplotlib等幾十個擴展包。如果一個個安裝,裝到啥時候去?(我曾經光安裝scip…

php parse url ctf,【SSRF】如何繞過filter_var(), preg_match() 和 parse_url()

0x01 前言這篇文章是在我看完一片國外安全大佬寫的文章后對其進行總結并翻譯得到的。0x02 正文之繞過filter_var和preg_match本片文章主要深入一種php ssrf的技術——如何繞過例如filter_var(), preg_match()和parse_url()等函數。本次我進行測試的php版本全部為php v5.6.30php…

python json解析_python讀取json文件并解析

原博文 2018-07-09 18:35 ? # -*- coding: utf-8 -*- import os import json import sys reload(sys) sys.setdefaultencoding(utf-8) filelistos.listdir(E:\\log\\files\\) for ite... 相關推薦 2019-12-05 20:03 ? 如何使用 Python 語言來編碼和解碼 JSON 對象。 JSON(Jav…

oracle進程瞬間暴增,oracle goldengate ogg 源段傳輸進程lag延遲不斷增加的原因?

該樓層疑似違規已被系統折疊 隱藏此樓查看此樓了解GoldenGate中LAG的含義GGSCI中顯示的LAG代表 事務被寫入到磁盤介質中的時刻例如Oracle中redo被寫入到online redo logfile中 和 Replicat將同一個事務分發到目標數據庫的時刻 之間的時間間隔。通俗地說,一個事務內的…

python中文詞云圖代碼_Python簡單實現詞云圖代碼及步驟解析

一、安裝 wordcloud pip install wordcloud 二、加載包、設置路徑 import os from wordcloud import WordCloud import matplotlib.pyplot as plt os.chdir(E:\\pyspace\\tmp) 三、詞云圖示例 1、默認參數示例 text Keep it simple and stupid. wc WordCloud() # 實例化詞云圖…

linux 命令 空格轉義,在Linux中,如何轉義SCP復制路徑中的空格?

問題描述我是Linux新手,我想將文件從遠程復制到本地系統…現在,我在Linux系統中使用scp命令。當我嘗試將其復制時,我有一些文件夾或文件名帶有空格文件,它顯示錯誤消息:“沒有這樣的文件或目錄”我試過了:s…

usb大容量存儲設備驅動程序_20年歷史了!為什么USB接口還存在?網友:原來如此...

USB接口作為計算機領域應用最廣泛的數據接口,已有20多年的歷史。和它的名字一樣,USB(Universal Serial Bus)最初也是為統一的數據接口而設計的。你幾乎可以用它來代替計算機的各種外部數據接口,只需為它設計相應的驅動程序。隨著市場對USB接口…

linux終端炫酷命令,你不得不知道11個炫酷的 Linux 終端命令

很多朋友都很喜歡Linux ,Linux是一套免費使用和自由傳播的類Unix操作系統,是一個基于POSIX和UNIX的多用戶、多任務、支持多線程和多CPU的操作系統,Linux是一款免費的操作系統,用戶可以通過網絡或其他途徑免費獲得,并可…

lasso回歸_一文讀懂線性回歸、嶺回歸和Lasso回歸

(圖片由AI科技大本營付費下載自視覺中國)作者 | 文杰編輯 | yuquanle本文介紹線性回歸模型,從梯度下降和最小二乘的角度來求解線性回歸問題,以概率的方式解釋了線性回歸為什么采用平方損失,然后介紹了線性回歸中常用的兩種范數來解決過擬合和…

springcloud架構特點_打造企業級微服務平臺架構,分布式應用場景管理

微服務平臺架構是一項在云中部署應用和服務的新技術。大部分圍繞微服務的爭論都集中在容器或其他技術是否能很好的實施微服務。微服務系統可以在“自己的程序”中運行,并通過“輕量級設備與HTTP型API進行溝通”。關鍵在于該服務可以在自己的程序中運行。通過這一點我…

linux 看防火墻的啟停日志,LINUX下防火墻iptables的日志管理

iptables的日志(log)由syslogd紀錄和管理。初始存放在 /var/log/messages里面。自動采取循環紀錄(rotation)的方式記錄。但是由于混在 messages中,對于管理和監視產生了不便。這里,我簡單介紹一下我的 iptables日志的管理,循環,和…

怎么判斷一個字符串的最長回文子串是否在頭尾_LeetCode 5 迅速判斷回文串的Manacher算法...

本文始發于個人公眾號: TechFlow題意Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000.Link: https://leetcode.com/problems/longest-palindromic-substring/翻譯給定一個字符串s&#xff0c…

linux內核沒有iobuf,LINUX2.6.26.6內核下雙口RAM的驅動函數測試成功!

驅動程序:#include //#include #include #include #include #include #include #include //#include #include //#include #include #include #include #include //#include #include #include #include #include #include #include #include MODULE_LICENSE("…

spring和mybatis結合做簡單的增刪查改系統_springbootamp;amp;vue簡單的景點信息管理系統...

springboot&&vue簡單的景點信息管理系統這兩天閑著沒有什么事,就根據陳哥的教程,試著寫了一個springboot和vue的簡單的景點信息管理系統。也就大致實現了最基本的增刪查改。先看看效果圖吧:1、登陸界面: 2、注冊界面&…

linux 內核 丟棄分片包,LINUX內核關于IP分片重組問題請教

最近研究學習IP分片重組,也拜讀了不少dx的閱讀理解。可還是有疑問,請教xdm。源代碼:linux-2.4.26\linux-2.4.26\net\ipv4\ip_fragment.cIP分片的重組大概經過以下幾個函數:0/ ip_defrag1/ ip_find-->ip_frag_create-->ip_frag_intern2/…

spark算子_十、Spark之詳解Action類算子

常用Action類算子列表reduce(func): 通過func函數來對RDD中所有元素進行聚合運算,先運算分區內數據,再運算分區間數據。scala> val rdd1 sc.makeRDD(1 to 100)rdd1: org.apache.spark.rdd.RDD[Int] ParallelCollectionRDD[4] at makeRDD at :24# 對…

linux 庫函數 劫持,Linux hook技術之-Ring3下動態鏈接庫.so函數劫持

劫持普通函數當然沒有什么意思了!我們要劫持的是系統函數!我們知道,Unix操作系統中對于GCC而言,默認情況下,所編譯的程序中對標準C函數(fopen、printf、execv家族等等函數)的鏈接,都是通過動態鏈接方式來鏈…