資訊內(nèi)容
講解Python核心基礎(chǔ)之面向?qū)ο?/h1>
極客小將2021-01-11-
簡介python視頻教程欄目介紹核心基礎(chǔ)的面向?qū)ο笙嚓P(guān)免費(fèi)學(xué)習(xí)推薦:python視頻教程1、面向?qū)ο蠛喗镻ython從設(shè)計(jì)之初就已經(jīng)是一門面向?qū)ο蟮恼Z言,正因?yàn)槿绱耍赑ython中創(chuàng)建一個(gè)類和對象是很容易的。如果你以前沒有接觸過面向?qū)ο蟮木幊陶Z言,那你可能需要先了解一些面向?qū)ο笳Z言的一些基本特征,在頭
python視頻教程欄目介紹核心基礎(chǔ)的面向?qū)ο驛Vo少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)
AVo少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)
相關(guān)免費(fèi)學(xué)習(xí)推薦:python視頻教程AVo少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)
1、面向?qū)ο蠛喗锳Vo少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)
Python從設(shè)計(jì)之初就已經(jīng)是一門面向?qū)ο蟮恼Z言,正因?yàn)槿绱耍赑ython中創(chuàng)建一個(gè)類和對象是很容易的。如果你以前沒有接觸過面向?qū)ο蟮木幊陶Z言,那你可能需要先了解一些面向?qū)ο笳Z言的一些基本特征,在頭腦里頭形成一個(gè)基本的面向?qū)ο蟮母拍睿@樣有助于你更容易的學(xué)習(xí)Python的面向?qū)ο缶幊獭Vo少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)
? Python是一門面向?qū)ο蟮木幊陶Z言
? 所謂面向?qū)ο蟮恼Z言,簡單理解就是語言中的所有操作都是通過對象來進(jìn)行的
? 面向過程
? 面向過程指將我們的程序分解為一個(gè)一個(gè)步驟,通過對每個(gè)步驟的抽象來完成程序
? 這種編寫方式往往只適用于一個(gè)功能,如果要實(shí)現(xiàn)別的功能,往往復(fù)用性比較低
? 這種編程方式符號人類的思維,編寫起來比較容易
? 1.媽媽穿衣服穿鞋出門
? 2.媽媽騎上電動(dòng)車
? 3.媽媽到超市門口放好電動(dòng)車
? 4.媽媽買西瓜
? 5.媽媽結(jié)賬
? 6.媽媽騎電動(dòng)車回家
? 7.到家孩子吃西瓜
? 面向?qū)ο蟮木幊陶Z言,關(guān)注的是對象,而不注重過程,對于面向?qū)ο笠磺薪詫ο?br/> ? 以上方式可以用 孩子?jì)寢尳o孩子買瓜來解決
? 面向?qū)ο蟮木幊趟枷耄瑢⑺泄δ芙y(tǒng)一保存到對應(yīng)的對象中,要使用某個(gè)功能,直接找到對應(yīng)的對象即可
? 這種編碼方式比較容易閱讀,并且易于維護(hù),容易復(fù)用。但是編寫的過程中不太符合常規(guī)的思維,編寫相對麻煩AVo少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)
面向?qū)ο蠡咎卣黝?Class): 用來描述具有相同的屬性和方法的對象的集合。它定義了該集合中每個(gè)對象所共有的屬性和方法。對象是類的實(shí)例。類變量:類變量在整個(gè)實(shí)例化的對象中是公用的。類變量定義在類中且在函數(shù)體之外。類變量通常不作為實(shí)例變量使用。數(shù)據(jù)屬性:類變量或者實(shí)例變量, 用于處理類及其實(shí)例對象的相關(guān)的數(shù)據(jù)。方法重寫:如果從父類繼承的方法不能滿足子類的需求,可以對其進(jìn)行改寫,這個(gè)過程叫方法的覆蓋(override),也稱為方法的重寫。局部變量:定義在方法中的變量,只作用于當(dāng)前實(shí)例的類。實(shí)例變量:在類的聲明中,屬性是用變量來表示的。這種變量就稱為實(shí)例變量,是在類聲明的內(nèi)部但是在類的其他成員方法之外聲明的。繼承:即一個(gè)派生類(derived class)繼承基類(base class)的字段和方法。繼承也允許把一個(gè)派生類的對象作為一個(gè)基類對象對待。例如,有這樣一個(gè)設(shè)計(jì):一個(gè)Dog類型的對象派生自Animal類,這是模擬"是一個(gè)(is-a)"關(guān)系(例圖,Dog是一個(gè)Animal)。實(shí)例化:創(chuàng)建一個(gè)類的實(shí)例,類的具體對象。對象:通過類定義的數(shù)據(jù)結(jié)構(gòu)實(shí)例。對象包括兩個(gè)數(shù)據(jù)成員(類變量和實(shí)例變量)和方法。面向?qū)ο螅∣bject oriented Programming,OOP)編程 的思想主要是針對大型軟件設(shè)計(jì)而來的。面向?qū)ο缶幊虒?shù)據(jù)和操作數(shù)據(jù)相關(guān)的方法封裝到對象中,組織代碼和數(shù)據(jù)的方式更加接近人的思維,使程序的擴(kuò)展性更強(qiáng)、可讀性更好,從而大大提高了編程的效率。
Python 完全采用了面向?qū)ο蟮乃枷耄钦嬲嫦驅(qū)ο蟮木幊陶Z言,完全支持面向?qū)ο蟮幕竟δ埽纾豪^承、多態(tài)、封裝等。
Python 中,一切皆對象。例如,數(shù)據(jù)類型、函數(shù)等,都是對象。AVo少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)
Python 支持面向過程、面向?qū)ο蟆⒑瘮?shù)式編程等多種編程范式。面向?qū)ο蟆⒚嫦蜻^程區(qū)別:相同點(diǎn): 都是解決問題的思維方式,都是代碼組織的方式
不同點(diǎn):
面向過程(Procedure Oriented)思維: 面向過程編程更加關(guān)注的是“程序的邏輯流程”,是一種“執(zhí)行者”思維,適合編寫小規(guī)模的程序。
面向?qū)ο?Object Oriented)思維: 面向?qū)ο蟾雨P(guān)注的是“軟件中對象之間的關(guān)系”,更契合人的思維模式,是一種“設(shè)計(jì)者”思維,適合編寫大規(guī)模的程序。面向?qū)ο罂梢詭椭覀儚暮暧^上把握、從整體上分析整個(gè)系統(tǒng)。
但是,具體到實(shí)現(xiàn)部分的微觀操作(就是一個(gè)個(gè)方法),仍然需要面向過程的思路去處理。面向過程和面向?qū)ο笫窍噍o相成的,面向?qū)ο箅x不開面向過程。
面向?qū)ο笏伎挤绞?遇到復(fù)雜問題,先從問題中找名詞(面向過程更多的是找動(dòng)詞),然后確立這些名詞哪些可以作為類,再根據(jù)問題需求確定的類的屬性和方法,確定類之間的關(guān)系。AVo少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)
2. 類(class)AVo少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)
創(chuàng)建類我們目前學(xué)習(xí)的都是Python的內(nèi)置對象,但是內(nèi)置對象并不都能滿足我們的需求,所以我們在開發(fā)中經(jīng)常要自定義一些對象List item類簡單理解它就是相當(dāng)于一個(gè)圖紙,在程序匯總我們需要根據(jù)類來創(chuàng)建對象。
類就是對象的圖紙我們也稱對象是類的實(shí)例(instance)如果多個(gè)對象是通過一個(gè)類創(chuàng)建的,我們稱這些對象是一類對象類也是一個(gè)對象,類就是用來創(chuàng)建對象的對象可以像對象中添加變量,對象中的變量稱之為屬性 語法:對象.屬性名 = 屬性值class MyClass():
pass類是抽象的,也稱之為“對象的模板”。 我們需要通過類這個(gè)模板,創(chuàng)建類的實(shí)例對象,然后才能使用類定義的功能。
而在Python中,Python對象包括幾個(gè)部分:
AVo少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)
對象實(shí)例化mc = MyClass()mc1 = MyClass()mc2 = MyClass()mc3 = MyClass()所以,我們需要定義構(gòu)造函數(shù) init() 方法,該方法會(huì)向我們所定義的對象中賦予對象的屬性。構(gòu)造方法用于執(zhí)行“實(shí)例對象的初始化工作”,即對象創(chuàng)建后,初始化當(dāng)前對象的相關(guān)屬性,無返回值。AVo少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)
init()的要點(diǎn)如下:AVo少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)
名稱固定,必須為:init()
第一個(gè)參數(shù)固定,必須為:self。 self 指的就是剛剛創(chuàng)建好的實(shí)例對象。
構(gòu)造函數(shù)通常用來初始化實(shí)例對象的實(shí)例屬性,例如,示例1中初始化實(shí)例屬性:name和sound
通過“類名(參數(shù)列表)”來調(diào)用構(gòu)造函數(shù)。調(diào)用后,將創(chuàng)建好的對象返回給相應(yīng)的變量。比如: cat = Animal(‘小花’,‘喵喵’)
__init __()方法:初始化創(chuàng)建好的對象,初始化指的是:“給實(shí)例屬性賦值”
__new __()方法: 用于創(chuàng)建對象,但我們一般無需重定義該方法。
如果我們不定義__init__方法,系統(tǒng)會(huì)提供一個(gè)默認(rèn)的__init__方法。如果我們定義了帶參的__init__方法,系統(tǒng)不創(chuàng)建默認(rèn)的__init__方法。
注:
Python 中的 self 相當(dāng)于 C++中的 self 指針,JAVA 和 C#中的 this 關(guān)鍵字。Python 中,self 必須為構(gòu)造函數(shù)的第一個(gè)參數(shù),名字可以任意修改。但一般遵守慣例,都叫做 self。
3. 類的定義AVo少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)
? 類和對象都是對現(xiàn)實(shí)生活中事物的抽象
? 事物包含兩部分
? 1. 數(shù)據(jù)(屬性)
? 2. 行為(方法)
? 調(diào)用方法 對象.方法名()
? 方便調(diào)用和函數(shù)調(diào)用的區(qū)別:如果是函數(shù)調(diào)用,調(diào)用時(shí)有幾個(gè)形參,就會(huì)傳遞幾個(gè)實(shí)參。如果是方法調(diào)用,默認(rèn)傳遞一個(gè)參數(shù),所以方法中至少得有一個(gè)形參
? 在類代碼塊中,我們可以定義變量和函數(shù)
? 變量會(huì)成為該類實(shí)例的公共屬性,所有的該實(shí)例都可以通過 對象.屬性名的形式訪問
? 函數(shù)會(huì)成為該類實(shí)例的公共方法,所有該類實(shí)例都可以通過 對象.方法名的形式訪問AVo少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)
class Person():
name = '奧特曼'
def speak(w):
print('我能說話')a = Person()b = Person()a.name = '葫蘆娃'print(a.name)print(b.name)print(a.speak())print(b.speak())4. 參數(shù)selfAVo少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)
屬性和方法? 類中定義的屬性和方法都是公共的,任何該類實(shí)例都可以訪問
? 屬性和方法的查找流程
? 當(dāng)我們調(diào)用一個(gè)對象的屬性時(shí),解析器會(huì)現(xiàn)在當(dāng)前的對象中尋找是否還有該屬性,如果有,則直接返回當(dāng)前的對象的屬性值。如果沒有,則去當(dāng)前對象的類對象中去尋找,如果有則返回類對象的屬性值。如果沒有就報(bào)錯(cuò)
? 類對象和實(shí)例對象中都可以保存屬性(方法)
? 如果這個(gè)屬性(方法)是所以的實(shí)例共享的,則應(yīng)該將其保存到類對象中
? 如果這個(gè)屬性(方法)是摸個(gè)實(shí)例獨(dú)有的。則應(yīng)該保存到實(shí)例對象中
? 一般情況下,屬性保存到實(shí)例對象中 而方法需要保存到類對象中AVo少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)
self方法是從屬于實(shí)例對象的方法。實(shí)例方法的定義格式如下:
def 方法名(self ,[形參列表]):
函數(shù)體AVo少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)
方法的調(diào)用格式如下:
對象.方法名([實(shí)參列表]) 要點(diǎn):AVo少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)
定義實(shí)例方法時(shí),第一個(gè)參數(shù)必須為 self。和前面一樣,self 指當(dāng)前的實(shí)例對象。 調(diào)用實(shí)例方法時(shí),不需要也不能給 self
傳參。self 由解釋器自動(dòng)傳參 函數(shù)和方法的區(qū)別AVo少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)
都是用來完成一個(gè)功能的語句塊,本質(zhì)一樣。 方法調(diào)用時(shí),通過對象來調(diào)用。方法從屬于特定實(shí)例對象,普通函數(shù)沒有這個(gè)特點(diǎn)。
直觀上看,方法定義時(shí)需要傳遞 self,函數(shù)不需要。 實(shí)例對象的方法調(diào)用本質(zhì): altAVo少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)
類中其他操作:AVo少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)
dir(obj)可以獲得對象的所有屬性、方法 obj.dict 對象的屬性字典 pass 空語句,相當(dāng)于占位符。
isinstance(對象,類型) 判斷“對象”是不是“指定類型”。AVo少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)
class Person():
def speak(self):
print('你好我是%s' % self.name)
def read(self):
passa = Person()b = Person()a.name = '葫蘆娃'b.name = '奧特曼'a.speak()b.speak()結(jié)果:
C:UsersgiserAppDataLocalProgramsPythonPython37python.exe D:/pycharm/pythonbasic/day09.py
你好我是葫蘆娃
你好我是奧特曼
Process finished with exit code 0 AVo少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)
<link rel="stylesheet"/><link rel="stylesheet"/>以上就是講解Python核心基礎(chǔ)之面向?qū)ο蟮脑敿?xì)內(nèi)容,更多請關(guān)注少兒編程網(wǎng)其它相關(guān)文章!AVo少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)
- 上一篇
描述Python類屬性
簡介相關(guān)免費(fèi)學(xué)習(xí)推薦:python視頻教程__getattr__是當(dāng)類調(diào)用一個(gè)不存在的屬性時(shí)才會(huì)調(diào)用getattr魔法函數(shù),他傳入的值item就是你這個(gè)調(diào)用的不存在的值。classUser(object):def__init__(self,name,info):self.name=nameself.in
- 下一篇
零基礎(chǔ)python培訓(xùn)后薪資有多少?
簡介零基礎(chǔ)python培訓(xùn)后薪資有多少?python開發(fā)的第三方招聘信息網(wǎng)站顯示15k左右,具體薪資多少根據(jù)個(gè)人的能力以及工作年限都有很大的關(guān)系。Python應(yīng)用廣泛在軟件質(zhì)量控制、提升開發(fā)效率、可移植性、組件集成、豐富庫支持等方面均處占優(yōu)勢。無論是從入門級選手到專業(yè)級開發(fā)人員都在做的爬蟲,Web程序開
AVo少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)
相關(guān)免費(fèi)學(xué)習(xí)推薦:python視頻教程AVo少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)
1、面向?qū)ο蠛喗锳Vo少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)
Python從設(shè)計(jì)之初就已經(jīng)是一門面向?qū)ο蟮恼Z言,正因?yàn)槿绱耍赑ython中創(chuàng)建一個(gè)類和對象是很容易的。如果你以前沒有接觸過面向?qū)ο蟮木幊陶Z言,那你可能需要先了解一些面向?qū)ο笳Z言的一些基本特征,在頭腦里頭形成一個(gè)基本的面向?qū)ο蟮母拍睿@樣有助于你更容易的學(xué)習(xí)Python的面向?qū)ο缶幊獭Vo少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)
? Python是一門面向?qū)ο蟮木幊陶Z言
? 所謂面向?qū)ο蟮恼Z言,簡單理解就是語言中的所有操作都是通過對象來進(jìn)行的
? 面向過程
? 面向過程指將我們的程序分解為一個(gè)一個(gè)步驟,通過對每個(gè)步驟的抽象來完成程序
? 這種編寫方式往往只適用于一個(gè)功能,如果要實(shí)現(xiàn)別的功能,往往復(fù)用性比較低
? 這種編程方式符號人類的思維,編寫起來比較容易
? 1.媽媽穿衣服穿鞋出門
? 2.媽媽騎上電動(dòng)車
? 3.媽媽到超市門口放好電動(dòng)車
? 4.媽媽買西瓜
? 5.媽媽結(jié)賬
? 6.媽媽騎電動(dòng)車回家
? 7.到家孩子吃西瓜
? 面向?qū)ο蟮木幊陶Z言,關(guān)注的是對象,而不注重過程,對于面向?qū)ο笠磺薪詫ο?br/> ? 以上方式可以用 孩子?jì)寢尳o孩子買瓜來解決
? 面向?qū)ο蟮木幊趟枷耄瑢⑺泄δ芙y(tǒng)一保存到對應(yīng)的對象中,要使用某個(gè)功能,直接找到對應(yīng)的對象即可
? 這種編碼方式比較容易閱讀,并且易于維護(hù),容易復(fù)用。但是編寫的過程中不太符合常規(guī)的思維,編寫相對麻煩AVo少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)
面向?qū)ο螅∣bject oriented Programming,OOP)編程 的思想主要是針對大型軟件設(shè)計(jì)而來的。面向?qū)ο缶幊虒?shù)據(jù)和操作數(shù)據(jù)相關(guān)的方法封裝到對象中,組織代碼和數(shù)據(jù)的方式更加接近人的思維,使程序的擴(kuò)展性更強(qiáng)、可讀性更好,從而大大提高了編程的效率。
Python 完全采用了面向?qū)ο蟮乃枷耄钦嬲嫦驅(qū)ο蟮木幊陶Z言,完全支持面向?qū)ο蟮幕竟δ埽纾豪^承、多態(tài)、封裝等。
Python 中,一切皆對象。例如,數(shù)據(jù)類型、函數(shù)等,都是對象。AVo少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)
相同點(diǎn): 都是解決問題的思維方式,都是代碼組織的方式
不同點(diǎn):
面向過程(Procedure Oriented)思維: 面向過程編程更加關(guān)注的是“程序的邏輯流程”,是一種“執(zhí)行者”思維,適合編寫小規(guī)模的程序。
面向?qū)ο?Object Oriented)思維: 面向?qū)ο蟾雨P(guān)注的是“軟件中對象之間的關(guān)系”,更契合人的思維模式,是一種“設(shè)計(jì)者”思維,適合編寫大規(guī)模的程序。面向?qū)ο罂梢詭椭覀儚暮暧^上把握、從整體上分析整個(gè)系統(tǒng)。
但是,具體到實(shí)現(xiàn)部分的微觀操作(就是一個(gè)個(gè)方法),仍然需要面向過程的思路去處理。面向過程和面向?qū)ο笫窍噍o相成的,面向?qū)ο箅x不開面向過程。
面向?qū)ο笏伎挤绞?遇到復(fù)雜問題,先從問題中找名詞(面向過程更多的是找動(dòng)詞),然后確立這些名詞哪些可以作為類,再根據(jù)問題需求確定的類的屬性和方法,確定類之間的關(guān)系。AVo少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)
2. 類(class)AVo少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)
創(chuàng)建類我們目前學(xué)習(xí)的都是Python的內(nèi)置對象,但是內(nèi)置對象并不都能滿足我們的需求,所以我們在開發(fā)中經(jīng)常要自定義一些對象List item類簡單理解它就是相當(dāng)于一個(gè)圖紙,在程序匯總我們需要根據(jù)類來創(chuàng)建對象。類就是對象的圖紙我們也稱對象是類的實(shí)例(instance)如果多個(gè)對象是通過一個(gè)類創(chuàng)建的,我們稱這些對象是一類對象類也是一個(gè)對象,類就是用來創(chuàng)建對象的對象可以像對象中添加變量,對象中的變量稱之為屬性 語法:對象.屬性名 = 屬性值class MyClass(): pass
類是抽象的,也稱之為“對象的模板”。 我們需要通過類這個(gè)模板,創(chuàng)建類的實(shí)例對象,然后才能使用類定義的功能。
而在Python中,Python對象包括幾個(gè)部分:AVo少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)
所以,我們需要定義構(gòu)造函數(shù) init() 方法,該方法會(huì)向我們所定義的對象中賦予對象的屬性。構(gòu)造方法用于執(zhí)行“實(shí)例對象的初始化工作”,即對象創(chuàng)建后,初始化當(dāng)前對象的相關(guān)屬性,無返回值。AVo少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)
init()的要點(diǎn)如下:AVo少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)
名稱固定,必須為:init()
第一個(gè)參數(shù)固定,必須為:self。 self 指的就是剛剛創(chuàng)建好的實(shí)例對象。
構(gòu)造函數(shù)通常用來初始化實(shí)例對象的實(shí)例屬性,例如,示例1中初始化實(shí)例屬性:name和sound
通過“類名(參數(shù)列表)”來調(diào)用構(gòu)造函數(shù)。調(diào)用后,將創(chuàng)建好的對象返回給相應(yīng)的變量。比如: cat = Animal(‘小花’,‘喵喵’)
__init __()方法:初始化創(chuàng)建好的對象,初始化指的是:“給實(shí)例屬性賦值”
__new __()方法: 用于創(chuàng)建對象,但我們一般無需重定義該方法。
如果我們不定義__init__方法,系統(tǒng)會(huì)提供一個(gè)默認(rèn)的__init__方法。如果我們定義了帶參的__init__方法,系統(tǒng)不創(chuàng)建默認(rèn)的__init__方法。
注:
Python 中的 self 相當(dāng)于 C++中的 self 指針,JAVA 和 C#中的 this 關(guān)鍵字。Python 中,self 必須為構(gòu)造函數(shù)的第一個(gè)參數(shù),名字可以任意修改。但一般遵守慣例,都叫做 self。
3. 類的定義AVo少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)
? 類和對象都是對現(xiàn)實(shí)生活中事物的抽象
? 事物包含兩部分
? 1. 數(shù)據(jù)(屬性)
? 2. 行為(方法)
? 調(diào)用方法 對象.方法名()
? 方便調(diào)用和函數(shù)調(diào)用的區(qū)別:如果是函數(shù)調(diào)用,調(diào)用時(shí)有幾個(gè)形參,就會(huì)傳遞幾個(gè)實(shí)參。如果是方法調(diào)用,默認(rèn)傳遞一個(gè)參數(shù),所以方法中至少得有一個(gè)形參
? 在類代碼塊中,我們可以定義變量和函數(shù)
? 變量會(huì)成為該類實(shí)例的公共屬性,所有的該實(shí)例都可以通過 對象.屬性名的形式訪問
? 函數(shù)會(huì)成為該類實(shí)例的公共方法,所有該類實(shí)例都可以通過 對象.方法名的形式訪問AVo少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)
4. 參數(shù)selfAVo少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)
屬性和方法? 類中定義的屬性和方法都是公共的,任何該類實(shí)例都可以訪問
? 屬性和方法的查找流程
? 當(dāng)我們調(diào)用一個(gè)對象的屬性時(shí),解析器會(huì)現(xiàn)在當(dāng)前的對象中尋找是否還有該屬性,如果有,則直接返回當(dāng)前的對象的屬性值。如果沒有,則去當(dāng)前對象的類對象中去尋找,如果有則返回類對象的屬性值。如果沒有就報(bào)錯(cuò)
? 類對象和實(shí)例對象中都可以保存屬性(方法)
? 如果這個(gè)屬性(方法)是所以的實(shí)例共享的,則應(yīng)該將其保存到類對象中
? 如果這個(gè)屬性(方法)是摸個(gè)實(shí)例獨(dú)有的。則應(yīng)該保存到實(shí)例對象中
? 一般情況下,屬性保存到實(shí)例對象中 而方法需要保存到類對象中AVo少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)
方法是從屬于實(shí)例對象的方法。實(shí)例方法的定義格式如下:
def 方法名(self ,[形參列表]):
函數(shù)體AVo少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)
方法的調(diào)用格式如下:
對象.方法名([實(shí)參列表]) 要點(diǎn):AVo少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)
定義實(shí)例方法時(shí),第一個(gè)參數(shù)必須為 self。和前面一樣,self 指當(dāng)前的實(shí)例對象。 調(diào)用實(shí)例方法時(shí),不需要也不能給 self
傳參。self 由解釋器自動(dòng)傳參 函數(shù)和方法的區(qū)別AVo少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)
都是用來完成一個(gè)功能的語句塊,本質(zhì)一樣。 方法調(diào)用時(shí),通過對象來調(diào)用。方法從屬于特定實(shí)例對象,普通函數(shù)沒有這個(gè)特點(diǎn)。
直觀上看,方法定義時(shí)需要傳遞 self,函數(shù)不需要。 實(shí)例對象的方法調(diào)用本質(zhì): altAVo少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)
類中其他操作:AVo少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)
dir(obj)可以獲得對象的所有屬性、方法 obj.dict 對象的屬性字典 pass 空語句,相當(dāng)于占位符。
isinstance(對象,類型) 判斷“對象”是不是“指定類型”。AVo少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)
AVo少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)
<link rel="stylesheet"/><link rel="stylesheet"/>以上就是講解Python核心基礎(chǔ)之面向?qū)ο蟮脑敿?xì)內(nèi)容,更多請關(guān)注少兒編程網(wǎng)其它相關(guān)文章!AVo少兒編程網(wǎng)-Scratch_Python_教程_免費(fèi)兒童編程學(xué)習(xí)平臺(tái)

- 上一篇
描述Python類屬性
簡介相關(guān)免費(fèi)學(xué)習(xí)推薦:python視頻教程__getattr__是當(dāng)類調(diào)用一個(gè)不存在的屬性時(shí)才會(huì)調(diào)用getattr魔法函數(shù),他傳入的值item就是你這個(gè)調(diào)用的不存在的值。classUser(object):def__init__(self,name,info):self.name=nameself.in
- 下一篇
零基礎(chǔ)python培訓(xùn)后薪資有多少?
簡介零基礎(chǔ)python培訓(xùn)后薪資有多少?python開發(fā)的第三方招聘信息網(wǎng)站顯示15k左右,具體薪資多少根據(jù)個(gè)人的能力以及工作年限都有很大的關(guān)系。Python應(yīng)用廣泛在軟件質(zhì)量控制、提升開發(fā)效率、可移植性、組件集成、豐富庫支持等方面均處占優(yōu)勢。無論是從入門級選手到專業(yè)級開發(fā)人員都在做的爬蟲,Web程序開