作者yimean (溫柔殺手)
看板Python
標題[問題] 類別問題
時間Mon Jun 19 18:22:59 2017
各位大大午安
我在書上看到一個例子
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://webptt.com/m.aspx?n=bbs/Python/M.1497867782.A.387.html
1F:推 hongx: 我也是這幾天剛上到課,線上老師是說加self是用class的規則 06/19 18:40
2F:→ hongx: 。你要用class類比來定義函數,第一個參數就必須是self。 06/19 18:40
3F:推 karta0910489: self代表建立的類別(class)實例(instance) 06/19 19:07
4F:→ karta0910489: 在python中實例可操作的方法(method)第一個參數必須 06/19 19:07
5F:→ karta0910489: 明確作為接受實例之用 06/19 19:07
6F:→ karta0910489: 相對來說,如果不加self,則表示該方法不需經由實例來 06/19 19:18
7F:→ karta0910489: 操作,即不需要創建實例即可取用方法 06/19 19:18
8F:→ karta0910489: =>不需要count=A() 06/19 19:18
9F:→ bibo9901: count.add(3,5) 其實是 A.add(count,3,5) 06/19 21:05