[問題] 類別問題

看板Python作者 (溫柔殺手)時間8年前 (2017/06/19 18:23), 編輯推噓2(207)
留言9則, 3人參與, 最新討論串3/3 (看更多)
各位大大午安 我在書上看到一個例子 Class A(object) def add(self, a, b): return a+b count=A() print(count.add(3,5)) 發現如果不是在Class底下add的parameter是不需要加self的。 也就是說我Run下面這個程式是可以正常運作的 def multiply(x,y): return x*y a=4 b=7 operation =multiply print(operation(a,b)) 請問有大大知道這是什麼原因嗎?煩請撥冗指導。 感謝。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.62.184.14 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1497867782.A.387.html

06/19 18:40, , 1F
我也是這幾天剛上到課,線上老師是說加self是用class的規則
06/19 18:40, 1F

06/19 18:40, , 2F
。你要用class類比來定義函數,第一個參數就必須是self。
06/19 18:40, 2F

06/19 19:07, , 3F
self代表建立的類別(class)實例(instance)
06/19 19:07, 3F

06/19 19:07, , 4F
在python中實例可操作的方法(method)第一個參數必須
06/19 19:07, 4F

06/19 19:07, , 5F
明確作為接受實例之用
06/19 19:07, 5F

06/19 19:18, , 6F
相對來說,如果不加self,則表示該方法不需經由實例來
06/19 19:18, 6F

06/19 19:18, , 7F
操作,即不需要創建實例即可取用方法
06/19 19:18, 7F

06/19 19:18, , 8F
=>不需要count=A()
06/19 19:18, 8F

06/19 21:05, , 9F
count.add(3,5) 其實是 A.add(count,3,5)
06/19 21:05, 9F
文章代碼(AID): #1PHwO6E7 (Python)
討論串 (同標題文章)
文章代碼(AID): #1PHwO6E7 (Python)