3 回答

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超6個(gè)贊
你的問題本身就有問題,方法其實(shí)就是函數(shù)只不過他在類里面叫他為方法,你應(yīng)該看的是類的定義與函數(shù)的區(qū)別,class是類,他里面的self是表示通過類生成的對(duì)象

TA貢獻(xiàn)1943條經(jīng)驗(yàn) 獲得超7個(gè)贊
定義一個(gè)函數(shù)就是定義一個(gè)方法,self是自身,調(diào)用的時(shí)候如果需要傳入魔法方法__init__(初始定義的值【也就是參數(shù)】)時(shí)就需要帶self,不需要?jiǎng)t可以在函數(shù)(即方法)前加修飾@staticmethod,就不用帶self參數(shù)了。

TA貢獻(xiàn)1858條經(jīng)驗(yàn) 獲得超8個(gè)贊
is_valid的上面有個(gè)staticmethod的裝飾器,字面意思是靜態(tài)方法,說(shuō)明它是類的靜態(tài)方法,不需要實(shí)例化就可以直接調(diào)用的,所以沒有self,而perimeter是實(shí)例方法,self代表的就是具體的實(shí)例,它需要類實(shí)例化后才能調(diào)用
添加回答
舉報(bào)