Pyhton學習——Day25

#面向對象的幾個方法
#1.靜態方法@staticmethod,不能訪問類屬性,也不能訪問實例屬性,只是類的工具包
#2.類方法:@classmethod,在函數屬性前加上類方法,顯示為(cls)代表類,類能訪問到數據屬性和函數屬性,不能訪問至實例屬性
#3.靜態屬性:@property,把函數封裝成一個數據屬性的形式,讓外部調用時看不到內部的邏輯;特點:定義時有self(實例本身)
#################################################################################################################
#組合(拼接):定義一個人的類,比如手、頭、腳,這個屬性又可以是通過一個實例化的對象,這就是組合
#用途:1.做關聯、2.小的組成大的
# class Head:
# pass
# class Foot:
# pass
# class Trunk:
# pass
# class Hand:
# pass
# class Person:
# def __init__(self,id_num,head,foot,trunk,hand):
# self.id_num = id_num
# self.head = head()
# self.foot = foot()
# self.trunk = trunk()
# self.hand = hand()
# P1 = Person.__dict__
# print(P1)
# F:\Python\PythonLeaning\venv\Scripts\python.exe F:/Python/PythonLeaning/每日學習打卡/Day25.py
# {'__module__': '__main__', '__init__': <function Person.__init__ at 0x000000000297A6A8>,
# '__dict__': <attribute '__dict__' of 'Person' objects>, '__weakref__':
# <attribute '__weakref__' of 'Person' objects>, '__doc__': None}
#
# Process finished with exit code 0
#################################################################################################################
# class School:
# def __init__(self,name,addr):
# self.name = name
# self.addr = addr
#
# class Course:
# def __init__(self,name,price,period,school):
# self.name = name
# self.price = price
# self.period = period
# self.school = school
# def employ(self):
# print('%s 正在empoying'%self.name)
# s1 = School('oldboy','beijing')
# s2 = School('oldboy','nanjing')
# s3 = School('oldboy','dongjing')
# c1 = Course('linux',10,'1h',s1)
# c2 = Course('Python',100,'100h',s2)
# msg = '''
# 1 oldboy beijing
# 2 oldboy nanjing
# 3 oldboy dongjing
# '''
# while True:
# print(msg)
# menu = {
# '1':s1,
# '2':s2,
# '3':s3
# }
# choice = input('選擇學校>>>')
# school_obj = menu[choice]
# # choice2 = input('選擇課程>>>')
# name = input('課程名>>: ')
# price = input('課程費用>>: ')
# period = input('課程周期>>: ')
# new_course = Course(name, price, period, school_obj)
# print('課程【%s】屬于【%s】學校' % (new_course.name, new_course.school.name))
# 模擬選課##############################################################################################
#################################################################################################################
#################################################################################################################
# 面向對象的三大特性
# 1.繼承 2.多態 3.封裝
# 一、什么是類的繼承?
# 類的繼承跟現實中的父子、孫子、重孫子、繼承關系一樣,父類又稱為基類
# python中的類的繼承分為:單繼承和多繼承
# class ParentClass1:
# pass
# class ParentClass2:
# pass
# class SubClass(ParentClass1): #單繼承
# pass
# class SubClass(ParentClass1,ParentClass2): #多繼承
# pass
# 二、子類到底繼承了父類的什么屬性
# 子類調用方法會觸發父類的init方法,子類繼承了父類的所有屬性,但是子類的方法還是先調用自己的方法,找不到自己的方法才會去
# 父類去找方法或屬性
# class robot:
# power = 100
# def __init__(self,name,energy):
# self.name = name
# self.energy = energy
# def act(self):
# print('%s機器人正在消耗能源'%self.name)
# class robot_arm(robot):
# def __init__(self,type):
# self.type = type
# def act1(self):
# print('%s型號機器人正在動arm'%self.type)
# r = robot('pandaboy','氫氣能源')
# r1 = robot_arm('ASII')
# r1.act1()
# print(r1.power)
#################################################################################################################
# F:\Python\PythonLeaning\venv\Scripts\python.exe F:/Python/PythonLeaning/每日學習打卡/Day25.py
# ASII型號機器人正在動arm
# 100
#
# Process finished with exit code 0
#################################################################################################################
#################################################################################################################
# 什么時候用繼承?
# 1.當類之間有顯著不同,并且較小的類是較大的類所需要的組件,用組合比較好
# 例如:描述一個機器人類,機器人這個大類是由很多互不相關的小類組成的,如機器手臂類、身體類、電池類等
# 2.當類之間有很多相同的功能,提取這些共同的功能做成基類,用繼承比較好
#################################################################################################################
# 什么是派生?
# 當然子類也可以添加自己新的屬性或者在自己這里重新定義這些屬性(不會影響到父類),需要注意的是,
# 一旦重新定義了自己的屬性且與父類重名,那么調用新增的屬性時,就以自己為準了。
#################################################################################################################
# 繼承同時具有兩種含義
# 含義一:繼承基類的方法,并且自己的改變或者擴展(代碼重用)
# 含義二:聲明某個子類兼容于某基類,定義一個借口類,子類繼承接口類,并且實現接口中定義的方法
# 實踐中,繼承的第一種含義意義并不是很大,甚至是有害的,因為它使得子類與基類出現強耦合
# 繼承的第二種含義非常重要,它又叫"接口繼承"
# 接口繼承實質上是要求"做出一個良好的抽象,這個抽象規定了一個兼容接口,使得外部調用者無需關心具體細節,可以一視同仁
# 的處理實現特定接口的所有對象——這在程序設計上叫做歸一化"
# 歸一化使得高層的外部使用者可以不加區分的處理所有接口兼容的對象集合——就好像linux的泛文件對象概念一樣,
# 所有的東西都可以當做文件處理,不必關心它是內存、磁盤、網絡還是屏幕(當然,對于底層設計者,也可以區分出"字符設備"和"塊設備")
# 然后做出針對性的設計,細致到什么程度,視需求而定
# 一切皆文件是沒有意義的,歸根結底就是全部都是讀和寫
#################################################################################################################
# 接口繼承代表定義一個基類,類當中把接口的方法定義一個函數,來一個子類就必須實現基類的方法
# 接口就是一個函數
# import abc
# 1.python可以繼承多個類,java和c只能繼承一個類
# 2.python如果繼承了多個類,那么尋找方法的方式有兩種,分別是深度優先和廣度優先
# 當類是經典類時,多繼承情況下,會按照深度優先方式查找
# 當類時新式類時,多繼承情況下,會按照廣度優先方式查找
#————————————————————————————————————————————————————————
# 繼承順序
# class A:
# pass
# class B(A):
# pass
# class C(A):
# pass
# 在子類中繼承父類
# super().__init__()
# 運行super調用super下的方法








轉載于:https://www.cnblogs.com/pandaboy1123/p/8485838.html

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

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

相關文章

龍芯IPC追平Zen2 穩步推進產業生態

日前&#xff0c;2022年信息技術自主創新高峰論壇在南京成功召開&#xff0c;來自政府、產業、各行業領域的領導、專家學者、企業代表齊聚長江之濱&#xff0c;共話信息產業自主創新發展。鐵流談談會上幾個亮點。龍芯LA664追平AMD zen2相對于一些技術引進CPU在引進海外技術后CP…

攝像頭水平視野垂直視野?_如何在“動物穿越:新視野”中的夢中游覽某人的島嶼...

攝像頭水平視野垂直視野?The promised second summer update for Animal Crossing: New Horizons has been released, and it restores the ability to visit another player’s island in your dreams. Before you can do so, though, you’ll need a Nintendo Online member…

中文版onlyoffice鏡像制作

原文同步于&#xff1a;https://www.daxueyiwu.com/post/761 拉取5.4.2.46版本onlyoffice/documentserver鏡像 docker pull onlyoffice/documentserver:5.4.2.46 該版本是支持20個連接數破解限制的最后一個版本&#xff0c;也是對中文字體界面顯示中文不亂碼支持比較好的一個版…

C++中的namespace ----轉載

轉自&#xff1a;http://blog.csdn.net/yao_zhuang/article/details/1853625 namespace中文意思是命名空間或者叫名字空間&#xff0c;傳統的C&#xff0b;&#xff0b;只有一個全局的namespace&#xff0c;但是由于現在的程序的規模越來越大&#xff0c;程序的分工越來越細&am…

使用訪問控制策略訪問服務網格內的服務

當在實施服務網格時&#xff0c;不可避免的存在網格外服務訪問網格內服務的情況&#xff0c;也就是服務網格的平滑落地。這種中間狀態可能會持續較長的時間&#xff0c;也是我們在落地的時候需要解決的問題之一。又或者&#xff0c;有的應用處于某些考慮并不適合使用服務網格&a…

Scrapy從理論到爬圖

Scrapy系列教程&#xff1a; https://www.daxueyiwu.com/post/71 scrapy爬蟲啟示錄-小伙子老夫看你血氣方剛這本《爬蟲秘錄》就傳給你了 0 點贊 ? 0 回復 ? 5月前 Scrapy初章-Scrapy理論簡介 0 點贊 ? 0 回復 ? 5月前 Scrapy次章-啥也不干就是爬圖 0 點贊 ? 0 回復 ? 5月…

gfi截圖_GFI Backup Home Edition是Windows的免費數據備份實用程序

gfi截圖In today’s tough economic times the last thing you want is to lose important data because you couldn’t afford a quality backup utility. Today we look at GFI Backup Home Edition, a completely free professional grade backup solution. 在當今艱難的經…

需求工程閱讀筆記03

需求工程與運營商技術管理人員的結合點思考&#xff1b; 運營商的技術管理人員有時會發現自己處于比較尷尬的一個境地&#xff0c;因為一方面自己并不直接開發、實現各種系統&#xff0c;而都是采用外包的方式&#xff0c;業務的需求都是經由自己再轉給外包方&#xff0c;感覺自…

使用BeetleX.MQTT構建服務

已經有很長一段時間沒有寫代碼&#xff0c;為了不讓自己的代碼技能有所下降所以針對BeetleX擴展了一個MQTT協議來保持自己的代碼設計和編寫能力。接下來簡單介紹一下如何使用BeetleX.MQTT來構建對應的TCP或WebSocket服務。 以下實現是針對MQTT 3.1.1版本&#xff0c;協議的實…

vlc 視頻流跳數_如何解決在播放高清晰度視頻文件的VLC中跳過和滯后的問題

vlc 視頻流跳數VLC is the king of all media… it plays almost anything on any platform, any time, any place. It’s great. Lately, however, I’ve been having issues with VLC skipping whenever I’m playing high-def media streaming over a network. VLC是所有媒體…

求助:關于sql如何統計時間的問題

三、現在我們假設應用計時分為app應用和web應用&#xff0c;需要考慮如下幾個方面&#xff1a; &#xff08;1&#xff09;多時間段&#xff08;2&#xff09;表中有冗雜數據 &#xff08;3&#xff09;用戶是在web端和app端都登陸&#xff0c;這種類型的重復時間段只能取其一 …

onlyoffice中文字體下載

原文同步自作者博客&#xff1a;https://www.daxueyiwu.com/post/778 下劃線開頭的是頁面顯示中文的字體&#xff0c;不帶下劃線的是頁面顯示英文的字體 calibri.ttf -CalibriTimes New Roman.ttf _FANGSONG.otf -仿宋FANGSONG.otf_FS_GB2312.otf -仿宋_GB2312_HWZS.otf -華文…

onlyoffice 20并發限制處理

原文同步自作者博客&#xff1a;https://www.daxueyiwu.com/post/31 開源版本連續打開20個頁面就會彈出該提示。 一.方案一 修改六個app.js文件 find ./ -name app.js 目錄下所有app.js文件&#xff0c;對代碼行進行修改&#xff0c;只是經過簡單的測試&#xff0c;希望發現…

[Linux環境]-centos7下安裝jdk1.8.0_141流程.

1.查看當前虛擬機java環境版本: java -version [rootcentos-linux-7 bin]# java -version java version "1.7.0_111" OpenJDK Runtime Environment (rhel-2.6.7.2.el7_2-x86_64 u111-b01) OpenJDK 64-Bit Server VM (build 24.111-b01, mixed mode) 2.查看當前安裝版…

石橋圖里的一個故事

唐朝詭事錄有一個石橋圖章節&#xff0c;里面記載了一個故事。十年前&#xff0c;南州鄉賢謝員外的兩個兒子&#xff0c;要求謝家的老仆人帶自己去湖里游玩。哪知游玩到湖中間&#xff0c;突然下起了瓢潑大雨&#xff0c;員外家的一個兒子被驚嚇掉落水里。老仆人的兒子趕忙去救…

onlyoffice更新中文字體總結

原文同步自作者博客&#xff1a;https://www.daxueyiwu.com/post/760 1. 通過字體修改軟件FontCreator修改字體名稱 &#xff08;1&#xff09;下載fontcreat.exe &#xff08;2&#xff09;將Windows/fonts 下的字體文件拷貝至 我的文檔/fonts (3) 使用fontcreat打開字體…

ubuntu 鍵盤快捷鍵_如何使用鍵盤快捷鍵在Ubuntu中提高生產力

ubuntu 鍵盤快捷鍵diceareawesome1/Shutterstock.comdiceareawesome1 / Shutterstock.comWe’re always looking for new ways to speed up everyday tasks in Ubuntu. We’ll show you some keyboard shortcuts you might not have known about, and show you how to make you…

核心編程之十一章的11-9

def add(x,y): a x y def average(): list1 [] list1.append(a/2) print(list1) return a #為什么return a 放在這里呢&#xff0c;因為如果放在外面的話&#xff0c;根據return的屬性&#xff0c;會結束嵌套數函數 return average() …

Ubuntu 桌面系統升級

本文介紹 Ubuntu 桌面系統升級的兩種方式&#xff0c;通過 UI 或命令行的方式&#xff0c;演示為 20.04 升級為 22.04。并介紹了 windows 的 Linux 子系統 wsl 的升級注意事項。背景之前在學習 ROS2 時&#xff0c;安裝 ros-humble-desktop 出現依賴錯誤&#xff1a;無法修正錯…

onlyoffice修改左上角的logo

原文同步自作者博客&#xff1a;https://www.daxueyiwu.com/post/770 1. 商用版config里配置就能修改logo "editorConfig": {"customization": {"logo": {"image": "https://example.com/logo.png","imageEmbedded&q…