中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

做網(wǎng)站要學多久電商運營

做網(wǎng)站要學多久,電商運營,投資建設個什么網(wǎng)站好,什么網(wǎng)站教你做美食文章目錄 前言一、類定義語法二、私有方法和私有屬性1.私有屬性2.私有方法 三、類“繼承”1.初識繼承2.使用super函數(shù)調(diào)用父類中構造的東西 四、類“多態(tài)”1.多態(tài)基礎2.子類不同形態(tài)3.使用isinstance函數(shù)與多態(tài)結合判斷類型 總結 前言 大家好,我是BoBo仔吖&#xf…

文章目錄

  • 前言
  • 一、類定義語法
  • 二、私有方法和私有屬性
    • 1.私有屬性
    • 2.私有方法
  • 三、類“繼承”
    • 1.初識繼承
    • 2.使用super函數(shù)調(diào)用父類中構造的東西
  • 四、類“多態(tài)”
    • 1.多態(tài)基礎
    • 2.子類不同形態(tài)
    • 3.使用isinstance函數(shù)與多態(tài)結合判斷類型
  • 總結

前言

大家好,我是BoBo仔吖,上3節(jié)課我們學習了類的基礎知識。這節(jié)課,我們要講一些深入的東西。
是什么呢?看看就知道!

一、類定義語法

其實,我們學習的class類都可以看做我們定義的功能語法
之前我講解type函數(shù)的時候也說到了我們的牢大class
這是我們的文章
https://blog.csdn.net/m0_69481332/article/details/138410028?spm=1001.2014.3001.5501
這里有一個內(nèi)容要注意:
在這里插入圖片描述
這幅圖片我給大家扣過來了,大家會發(fā)現(xiàn):這里我們通過type函數(shù)判斷類型后(其實,list等等也是一個類哦),下面的輸出是<class'類型'>
大家是不是也看看讓自己的類的語法形式?使用type方法即可!

還是有栗子:
在這里插入圖片描述
這是我們上次的例子
我們都知道,我們把類GameB賦予了變量game_begin
所以,我們用type來檢驗它的時候便反映了它的類語法形式,也就是GameB
這里還有一個main

<class '__main__.GameB'>

這里出現(xiàn)了__main__方法,因為這是我們自己定義的類語法空間

這就是類定義語法,非常簡單似不似?
接下來,我們學習一些更加深入的內(nèi)容

二、私有方法和私有屬性

1.私有屬性

我們還是把我們之前的例子拿出來

class GameB:def __init__(self,exp,grade):self.exp = expself.grade = gradedef print_message(self):print('經(jīng)驗值',self.exp)print('等級',self.grade)game_begin = GameB('0',1)
game_begin.print_message()
print(type(game_begin))

這里我們把class GameB的設定叫做定義類,而其中的函數(shù)則稱為方法
為什么要扯概念?因為這個東東非常重要

接下來,我們來講一個和上文一點不搭噶的東西

class Dog:def __init__(self,name):self.__name = nameself.__age = Noneprint(self.__name,'生成成功!')def set_age(self,age):if not isinstance(age,int):#這里的函數(shù)isinstance是判斷它括號內(nèi)的兩個參數(shù)中,參數(shù)1是否是參數(shù)2的類型,如果不是就執(zhí)行下面的操作,通常作為條件使用print('輸入的年齡必須是數(shù)字!')return Falseif age <= 0:print('年齡必須大于0!')return Falseself.__age = agedef play(self):print('汪汪汪!我今年',self.__age)dog =Dog('旺財')
dog.set_age('hello!')
dog.set_age(-20)
dog.set_age(3)
dog.play()

這是一個生成dog角色的函數(shù),這里我們發(fā)現(xiàn)有一個非常眼生的東西:私有屬性
私有屬性的屬性呢和他的本身命名的特性差不多,是一個“私有”屬性
大家可以把私有屬性看做一件事情:
我們在家里可能穿睡衣,穿拖鞋;但是,我們在外面就不會穿的這么奇怪
我們就可以把家里看做class類里,外面看做class類外的代碼,這樣大家是不是就理解多了呢?

這里的結構是__(下劃線×2)對象名
這個私有屬性呢與我們普通的屬性有一個顯著的特點就是他不能直接改動,而是需要在某個特定的函數(shù)中再次修改,且不能再類以外的地方調(diào)用
例如這里,我們構造了兩個私有屬性,它們是__age__name
屬性age只能通過類中的set_age修改,不能再外部直接改動,否則會發(fā)生錯誤
就像這樣:
在這里插入圖片描述
當然,有私有屬性就有私有方法

2.私有方法

這里的方法概念上面提到了,就是我們所封裝的函數(shù)
私有方法的理解也可以向上文那樣:你在家里休息日時可能9點起,12點睡,打游戲,吃KFC;但是,你上學或是工作時就必須早起,調(diào)整作息。
我們還是把家看做類代碼,把外面看做類以外的代碼

我們還是以類Dog為例,構造私有方法__say(self,name)
代碼如下:

class Dog:def __say(self,name):print(name)def play(self):print('汪汪汪!')dog = Dog()
dog.play()

這里我們的私有方法沒有起任何作用
而且,這里不能通過類以外區(qū)域來修改這個函數(shù),否則會出現(xiàn)錯誤

大家學會私有概念了嗎?如果學會,那么你的類使用就更加靈活咯!!!

三、類“繼承”

繼承呢我們往往會聯(lián)想到一些時間:老父親的特征往往會繼承給兒女,這就是生理繼承(DNA繼承)
這種廣義上的繼承想必大家都知道,那么,在類里,繼承是什么一種概念呢?
還是甩出剛剛的示例,就是那個生成doggy的模型
這里我們看源代碼,看看有什么相同和不同

1.初識繼承

class Animal:def __init__(self,name):self.name = name def play(self):print('我是',self.name)class Dog(Animal):#注意看,這就是繼承的格式!!pass#這里我們沒有私有方法,所以這里我們在下面調(diào)用的時候調(diào)整就可以了dog = Dog('旺財')#這里繼承了Animal類中的方法,賦給dog之后,就可以轉而通過Dog類調(diào)用Animal的內(nèi)容
dog.play()

這里我們的繼承類采用的是這樣的格式:

class 類名【子類】(主類名【或者叫父類】):

我們通過繼承的手法可以更加靈活地使用父類里的東西,而且還能修改(私有屬性或私有方法除外,不可繼承),更加靈活。這里我們的父類Animal受了Dog的調(diào)用,如果我們在dog里修改animal類,那么效果會更加良好

2.使用super函數(shù)調(diào)用父類中構造的東西

class Animal:def __init__(self,name):self.name = namedef play(self):print('我是',self.name)class Dog(Animal):def __init__(self):print('旺財')dog = Dog()

在這個例子里,我們在dog類中繼承了Animal,但是由于沒有調(diào)用play,所以只能輸出旺財

但是,我們?nèi)绻苯邮褂梅椒╬lay,那么就會出錯,因為我們使用的是類Dog里的構造方法,而不是類Animal的構造方法,盡管我們繼承了Animal類
如果我們要實現(xiàn)animal類的構造方法,那么我們就要用到super() 內(nèi)置函數(shù)

就像這樣:

class Animal:def __init__(self, name):self.name = namedef play(self):print('我是', self.name)class Dog(Animal):def __init__(self):super(Dog,self).__init__('旺財')dog = Dog()
dog.play()

我們使用super函數(shù)來調(diào)用我們在Animal類中所繼承的__init__構造方法,完之后就可以直接使用play來運行Animal類中的內(nèi)容了
怎么樣,是不是很神奇?

四、類“多態(tài)”

多態(tài)是基于繼承上的一種形式,我們可以把它大致理解為“父類的多個子類”
還是以類Animal為例,來看看使用多態(tài)后結果如何

1.多態(tài)基礎

還是這個例子

class Animal:def say(self):print('Animal')class Dog(Animal):passclass Cat(Animal):passdog = Dog()
dog.say()cat = Cat()
cat.say()

這里我們用兩個形式來繼承Animal,它們分別是類Dog和類Cat
我們的兩個子類繼承父類Animal之后,使用了父類中的方法say,這個大家應該能理解
接下來,我們來看點深層的內(nèi)容

2.子類不同形態(tài)

這里我們的目標是使用2個不同的子類來通過共同繼承父類Animal來輸出不同的內(nèi)容

其實也不難,只要在類Dog與Cat中分別加入自己的內(nèi)容即可

具體代碼如下:

class Animal:def say(self):print('Animal')class Dog(Animal):def say(self):print('Dog')class Cat(Animal):def say(self):print('Cat')dog = Dog()
dog.say()cat = Cat()
cat.say()

這里我們的輸出就是Dog與Cat了,我們共同使用了自己所繼承的方法來創(chuàng)造自己不同的結果,這就是多態(tài)的體現(xiàn)

3.使用isinstance函數(shù)與多態(tài)結合判斷類型

這個isinstance函數(shù)呢大家不陌生,之前的一個章節(jié)中我就用它判斷過類型:對,就是實戰(zhàn)的那一章,我用這個來判斷輸入類型(構造旺財?shù)哪且徽n,大家可以翻翻我之前的文章找一找)
具體格式我就不說了,大家可以自己根據(jù)我使用的方法自己練練手
接下來我們直接上代碼
我們的isinstance函數(shù)和我們的多態(tài)是有關系的,所以我把他放在這里節(jié)里講解

首先,我們像剛剛那樣使用dog變量與cat變量分別迭代類Dog與類Cat

class Animal:def say(self):print('Animal')class Dog(Animal):def say(self):print('Dog')class Cat(Animal):def say(self):print('Cat')dog = Dog()
cat = Cat()

好,不要眨眼,接下來就是重頭戲!

我們這里其實也能把cat與dog變量看做一種調(diào)用繼承的形式。根據(jù)這個邏輯,我們可以用isinstance來判斷繼承的正誤,簡稱來說就是看是不是親生的
在這里插入圖片描述

OK,我們先上代碼

class Animal:def say(self):print('Animal')class Dog(Animal):def say(self):print('Dog')class Cat(Animal):def say(self):print('Cat')dog = Dog()
cat = Cat()print(isinstance(dog,Dog))
print(isinstance(dog,Animal))
print(isinstance(cat,Cat))
print(isinstance(cat,Animal))

這里我們的輸出是:

True
True
True
True

好,現(xiàn)在我們知道了,dog和cat都是自己的祖宗親生的了
在這里插入圖片描述
接下來,我們就要好好琢磨琢磨
首先,我們把后面幾行單獨剔出來檢查

dog = Dog()
cat = Cat()print(isinstance(dog,Dog))
print(isinstance(dog,Animal))
print(isinstance(cat,Cat))
print(isinstance(cat,Animal))

我們這里使用dog和cat兩個變量“繼承”了類Dog,Cat與Animal
所以,我們的這里的輸出是正確的

我之前講過,其實我們的數(shù)據(jù)類型,像int,float,str,list等等,其實都是一個類,我們只要使用isinstance函數(shù)就能看出,逗號“,”前的是不是逗號“,”后的類型。所以,大家現(xiàn)在懂數(shù)據(jù)類型與類的關聯(lián)性原理了吧

總結

好了,今天的內(nèi)容到此結束。實在是寫不動了,下次再努力吧
下節(jié)課,我們將學習類的最后一講:拓展篇,大家敬請期待!如有不懂,別忘了問我喲!下期見~~~

【制作不易,別忘了一圈三連,點個關注!!!】

http://www.risenshineclean.com/news/46663.html

相關文章:

  • 為男人做購物網(wǎng)站攜程: 2023年旅行搜索上漲超900%
  • 網(wǎng)站建設招標公告首頁排名關鍵詞優(yōu)化
  • 鄭州網(wǎng)站建設方案書網(wǎng)絡的推廣
  • 微網(wǎng)站制作公司佛山疫情最新消息
  • 濰坊做企業(yè)手機版網(wǎng)站濰坊在線制作網(wǎng)站
  • 網(wǎng)站設計美工多少網(wǎng)絡推廣電話
  • 中化建工北京建設投資有限公司網(wǎng)站最新的疫情信息
  • 企業(yè)網(wǎng)站類型市場營銷互聯(lián)網(wǎng)營銷
  • 展示網(wǎng)站報價搜索引擎環(huán)境優(yōu)化
  • 什么網(wǎng)站可以做引文分析開發(fā)一個網(wǎng)站需要哪些技術
  • 酒泉網(wǎng)站建設平臺百度網(wǎng)盤pc網(wǎng)頁版入口
  • 哈爾濱網(wǎng)站建設與管理今日國際新聞頭條15條
  • 濱海住房和城鄉(xiāng)建設局網(wǎng)站谷歌查詢關鍵詞的工具叫什么
  • 做網(wǎng)站的圖片需要多少錢下載百度極速版免費安裝
  • 云南省建設廳招標辦網(wǎng)站網(wǎng)絡營銷活動策劃
  • olam wordpress搜索引擎優(yōu)化搜索優(yōu)化
  • 常德市做網(wǎng)站聯(lián)系電話cps廣告聯(lián)盟
  • wordpress注冊增加性別選項seo上首頁
  • 在工商局網(wǎng)站做年報要交費嗎百度網(wǎng)盤登錄入口 網(wǎng)頁
  • 進入百度首頁seo優(yōu)化技術廠家
  • 無人區(qū)免費電影入口seo研究中心南寧線下
  • 武漢做營銷型網(wǎng)站建設寫手接單平臺
  • 公安局門戶網(wǎng)站建設方案網(wǎng)絡營銷的功能有哪些?
  • 展架設計在哪個網(wǎng)站做泉州百度首頁優(yōu)化
  • 網(wǎng)站banner尺寸1920seo 推廣教程
  • 營銷型網(wǎng)站建設發(fā)難卡點視頻軟件下載
  • 廊坊網(wǎng)站制作公司網(wǎng)站的優(yōu)化和推廣方案
  • 深圳凡科網(wǎng)站建設廣告策劃公司
  • 網(wǎng)站建設公司在線qq客服代碼單頁網(wǎng)站怎么優(yōu)化
  • 穆棱建設局網(wǎng)站二級域名網(wǎng)址查詢