久久精品国产亚洲高清|精品日韩中文乱码在线|亚洲va中文字幕无码久|伊人久久综合狼伊人久久|亚洲不卡av不卡一区二区|精品久久久久久久蜜臀AV|国产精品19久久久久久不卡|国产男女猛烈视频在线观看麻豆

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

當(dāng)前位置:首頁(yè)  >  技術(shù)干貨  > python怎么調(diào)用實(shí)例方法

python怎么調(diào)用實(shí)例方法

來源:千鋒教育
發(fā)布人:xqq
時(shí)間: 2023-11-10 13:09:01 1699592941

Python的類體中定義的方法默認(rèn)都是實(shí)例方法,也示范了通過對(duì)象來調(diào)用實(shí)例方法。

但要提醒大家的是,Python的類在很大程度上可看做是一個(gè)獨(dú)立的空間(稱為類命名空間),當(dāng)程序在類體中定義變量、方法時(shí),與前面介紹的定義變量、定義函數(shù)其實(shí)并沒有太大的不同。對(duì)比如下代碼:

#定義全局空間的foo函數(shù)

deffoo():

print("全局空間的foo方法")

#全局空間的bar變量

bar=20

classBird:

#定義Bird空間的foo函數(shù)

deffoo():

print("Bird空間的foo方法")

#定義Bird空間的bar變量

bar=200

#調(diào)用全局空間的函數(shù)和變量

foo()

print(bar)

#調(diào)用Bird空間的函數(shù)和變量

Bird.foo()

print(Bird.bar)

上面代碼在全局空間和Bird類(Bird空間)中分別定義了foo()函數(shù)和bar變量,從定義它們的代碼來看,幾乎沒有任何區(qū)別,只是在Bird類中定義它們時(shí)需要縮進(jìn)。

接下來程序在調(diào)用Bird空間內(nèi)的bar變量和foo()函數(shù)(方法)時(shí),只要添加Bird.前綴即可,這說明完全可以通過Bird類來調(diào)用foo()函數(shù)(方法)。這就是類調(diào)用實(shí)例方法的證明。

現(xiàn)在問題來了,如果使用類調(diào)用實(shí)例方法,那么該方法的第一個(gè)參數(shù)(self)怎么自動(dòng)綁定呢?例如如下程序:

classUser:

defwalk(self):

print(self,'正在慢慢地走')

#通過類調(diào)用實(shí)例方法

User.walk()

運(yùn)行上面代碼,程序會(huì)報(bào)出如下錯(cuò)誤:

TypeError:walk()missing1requiredpositionalargument:'self'

請(qǐng)看程序最后一行代碼,調(diào)用walk()方法缺少傳入的self參數(shù),所以導(dǎo)致程序出錯(cuò)。這說明在使用類調(diào)用實(shí)例方法時(shí),Python不會(huì)自動(dòng)為第一個(gè)參數(shù)綁定調(diào)用者。實(shí)際上也沒法自動(dòng)綁定,因此實(shí)例方法的調(diào)用者是類本身,而不是對(duì)象。

如果程序依然希望使用類來調(diào)用實(shí)例方法,則必須手動(dòng)為方法的第一個(gè)參數(shù)傳入?yún)?shù)值。例如,將上面的最后一行代碼改為如下形式:

u=User()

#顯式為方法的第一個(gè)參數(shù)綁定參數(shù)值

User.walk(u)

此代碼顯式地為walk()方法的第一個(gè)參數(shù)綁定了參數(shù)值,這樣的調(diào)用效果完全等同于執(zhí)行u.walk()。實(shí)際上,當(dāng)通過User類調(diào)用walk()實(shí)例方法時(shí),Python只要求手動(dòng)為第一個(gè)參數(shù)綁定參數(shù)值,并不要求必須綁定User對(duì)象,因此也可使用如下代碼進(jìn)行調(diào)用:純文本復(fù)制

#顯式為方法的第一個(gè)參數(shù)綁定fkit字符串參數(shù)值

User.walk('fkit')

如果按上面方式進(jìn)行綁定,那么'fkit'字符串就會(huì)被傳給walk()方法的第一個(gè)參數(shù)self。因此,運(yùn)行上面代碼,將會(huì)看到如下輸出結(jié)果:

fkit正在慢慢地走

總結(jié)

Python的類可以調(diào)用實(shí)例方法,但使用類調(diào)用實(shí)例方法時(shí),Python不會(huì)自動(dòng)為方法的第一個(gè)參數(shù)self綁定參數(shù)值;程序必須顯式地為第一個(gè)參數(shù)self傳參,這種方式調(diào)用的方法被稱為“未綁定方法”。

以上內(nèi)容為大家介紹了Python培訓(xùn)之怎么調(diào)用實(shí)例方法,希望對(duì)大家有所幫助,如果想要了解更多Python相關(guān)知識(shí),請(qǐng)關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。

聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請(qǐng)您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
免費(fèi)領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
长子县| 东兴市| 班玛县| 江达县| 城口县| 监利县| 昌平区| 延津县| 青海省| 银川市| 普兰店市| 玛沁县| 灵寿县| 灵璧县| 囊谦县| 云安县| 瑞安市| 宜章县| 彰武县| 眉山市| 中牟县| 沧州市| 中卫市| 丰宁| 邵武市| 泰和县| 分宜县| 胶南市| 康定县| 新郑市| 龙陵县| 东山县| 加查县| 库车县| 武川县| 红原县| 茌平县| 阜新市| 克拉玛依市| 区。| 武平县|