日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python super 函数 - Python零基础入门教程

發布時間:2024/9/27 python 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python super 函数 - Python零基础入门教程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

  • 一.Python super 函數簡介
  • 二.Python super 函數語法
  • 三.Python super 函數使用
    • 1.案例一
    • 2.案例二:
  • 四.猜你喜歡

零基礎 Python 學習路線推薦 : Python 學習目錄 >> Python 基礎入門

一.Python super 函數簡介

Python 內置函數 super 主要用于類的多繼承中,用來查找并調用父類的方法,所以在單重繼承中用不用 super 都沒關系;但是,使用 super 是一個好的習慣。一般我們在子類中需要調用父類的方法時才會這么用;

二.Python super 函數語法

''' 參數:type — 類,一般是類名;object-or-type — 類,一般是 self;返回值:無 '''super(type,object-or-type)

三.Python super 函數使用

1.案例一

# !usr/bin/env python # -*- coding:utf-8 _*- """ @Author:猿說編程 @Blog(個人博客地址): www.codersrc.com @File:Python super 函數.py @Time:2021/04/29 07:37 @Motto:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅持不懈地積累!"""class A:def m(self):print('A')class B:def m(self):print('B')class C(A):def m(self):print('C')super().m()C().m()''' 輸出結果: C A '''

代碼分析:這樣做的好處就是:如果你要改變子類繼承的父類(由 A 改為 B ),你只需要修改一行代碼(class C(A): -> class C(B))即可,而不需要在 class C 的大量代碼中去查找、修改基類名,另外一方面代碼的可移植性和重用性也更高。

2.案例二:

# !usr/bin/env python # -*- coding:utf-8 _*- """ @Author:猿說編程 @Blog(個人博客地址): www.codersrc.com @File:Python super 函數.py @Time:2021/04/29 07:37 @Motto:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅持不懈地積累!"""class Dog:def __init__(self):self.fly = Falsedef print_fly(self):if self.fly:print('不是普通狗,能飛')else:print('普用狗不會飛')class xiaotianquan(Dog):def __init__(self):self.sound = Truedef print_sing(self):if self.sound:print("汪汪汪")else:print("假狗狗")if __name__ == '__main__':dog = xiaotianquan()dog.print_sing() # 能正常輸出dog.print_fly() # 報錯,AttributeError: 'xiaotianquan' object has no attribute 'fly'

代碼分析:雖然子類 xiaotianquan 繼承父類 Dog ,但是子類直接調用父類的 print_fly 函數,依然會報錯,因為子類沒有父類的 fly 屬性,上面代碼可以通過在 __init__ 函數中調用 super 完成,例如:

# !usr/bin/env python # -*- coding:utf-8 _*- """ @Author:猿說編程 @Blog(個人博客地址): www.codersrc.com @File:Python super 函數.py @Time:2021/04/29 07:37 @Motto:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅持不懈地積累!"""class Dog:def __init__(self):self.fly = Falsedef print_fly(self):if self.fly:print('不是普通狗,能飛')else:print('普用狗不會飛')class xiaotianquan(Dog):def __init__(self):super().__init__() # 等效 super(xiaotianquan,self).__init__()self.fly = Trueself.sound = Truedef print_sing(self):if self.sound:print("汪汪汪")else:print("假狗狗")if __name__ == '__main__':dog = xiaotianquan()dog.print_sing()dog.print_fly()''' 輸出結果:汪汪汪不是普通狗,能飛 '''

四.猜你喜歡

  • Python for 循環
  • Python 字符串
  • Python 列表 list
  • Python 元組 tuple
  • Python 字典 dict
  • Python 條件推導式
  • Python 列表推導式
  • Python 字典推導式
  • Python 函數聲明和調用
  • Python 不定長參數 *argc/**kargcs
  • Python 匿名函數 lambda
  • Python return 邏輯判斷表達式
  • Python 字符串/列表/元組/字典之間的相互轉換
  • Python 局部變量和全局變量
  • Python type 函數和 isinstance 函數區別
  • Python is 和 == 區別
  • Python 可變數據類型和不可變數據類型
  • Python 淺拷貝和深拷貝
  • 未經允許不得轉載:猿說編程 ? Python super 函數

    總結

    以上是生活随笔為你收集整理的Python super 函数 - Python零基础入门教程的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。