@r星校長
第3
關:繫結與方法呼叫
在 python 中,如果用例項去呼叫方法,這種限制就被稱為 python 中的繫結(binging)。沒有建立例項時,方法就是未繫結的。
呼叫繫結方法
在定義方法時,self
總是作為第乙個引數傳遞的。self
代表例項本身,self.變數
代表呼叫此例項的變數,self.方法
代表呼叫例項的方法。因為宣告方法時已經傳入self
,所以在呼叫時self
就不用明確傳入了,此時例項是隱含的。呼叫繫結方法的**如下:
class
bindexample
:def
bindmethod
(self)
:print
("繫結方法呼叫例項"
)be = bindexample(
)be.bindmethod(
)
呼叫非繫結方法當呼叫非繫結方法的時候,因為沒有建立例項,所以需要用類去呼叫方法。在呼叫的時候需要顯式地傳入乙個例項引數。例如:
class
bindexample
:def
bindmethod
(self)
:print
("非繫結方法呼叫例項"
)be = bindexample(
)bindexample.bindmethod(be)
東邊日出西邊雨,道是無晴卻有晴。程式設計要求本關的測試檔案給出了乙個類f\fractionsum
,此類的作用是當輸入乙個數n
,如果n
為偶數,求1/2+1/4+...+1/n
的和,如果輸入n
為奇數,求1/1+1/3+...+1/n
的和。
在f\fractionsum
中,定義了方法peven(self,n)
用來求當n
為偶數時的結果,定義了podd(self,n)
用來求當n
為奇數時的結果,定義了dcall(self,fp,n)
方法來呼叫peven
與podd
兩個方法,fp
為方法名,最後返回計算結果。
本關的程式設計任務是補全f\fractionsum.py
檔案中的建立例項與呼叫方法部分,具體要求如下:
填入建立f\fractionsum
的例項fs
的**;
填入呼叫f\fractionsumtest
類中dcall
方法的**,計算當n
為偶數時計算的和;
填入呼叫f\fractionsumtest
類中dcall
方法的**,計算當n
為奇數時計算的和。
import fractionsumtest
# 請在下面填入建立fractionsum的例項fs的**
########## begin ##########
fs = fractionsumtest.fractionsum(
)########## end ##########
n =int
(input()
)if n %2==
0:# 請在下面填入呼叫fractionsumtest類中dcall方法的**,計算當n為偶數時計算的和
########## begin ##########
sum= fs.peven(n)
########## end ##########
else
:# 請在下面填入呼叫fractionsumtest類中dcall方法的**,計算當n為奇數時計算的和
########## begin ##########
sum= fs.podd(n)
########## end ##########
print
(sum
)
預期輸入:
5預期輸出:
1.5333333333333332
預期輸入:
8預期輸出:
Python 入門之類的基礎語法(二)
r星校長 第2關 類的屬性與例項化 屬性就是對類和物件特徵的描述,外部以屬性來區分不同的類,類具有資料屬性和方法。而由類建立出來的例項 物件,具有它所屬的類的資料屬性和方法。例如,書本是乙個類,它具有作者 書名 出版社等資料屬性,它還具有銷售這乙個方法。python 核心程式設計 就是書本類的乙個物...
Python入門學習筆記之類的基礎語法
類中方法的型別 在python中,類的宣告是通過class關鍵字,第一行是class後面接著是類名,類名的開頭通常是大寫,類名後面接著是括號,括號中的內容表示這個類是從哪個繼承成來的,如果沒有合適的繼承類,就使用object類,object類是所有類都會繼承的基類,然後是冒號 第二行一般為類文件字串...
python入門基礎之 類
小白自用筆記,如有錯誤還請指正 類 屬性 方法 類的名稱開頭字母要大寫如 point emailclient。且沒有下劃線 屬性分為類屬性和例項屬性 簡單的說 類屬性 是在類中直接寫的屬性,例項屬性 指在類外重寫的屬性。方法相當於類中的函式 詳見以下示例 class point x 2 類屬性 y ...