回答
在Python中,這只是一個約定,第零個參數被稱爲self
。重要的是這個位置。什麼東西都可以做,所以你可以使用i
或其他任何東西:
class Foo:
def bar (i):
print i
自我搜索...
多數情況下這是什麼都沒有。例如,如果不存在本地x變量,通常「x」將引用this.x。
在Perl中,對其本身的引用永遠不會隱含。
sub work {
my($self) = @_;
sleep(); # Don't do this
$self->sleep(); # Correct usage
}
來源: 「Writing serious Perl - The absolute minimum you need to know」
儘管按照慣例,大多數perl程序員都將該引用命名爲'$ self'。這只是該方法的第一個參數。 – slebetman 2010-09-08 17:45:17
@slebetman是的,你是對的。我的答案太簡短了。我已經添加了一個說明約定的例子。 – 2010-09-08 18:02:35
Smalltalk中也使用自我。
F#與Python和Perl類似,只需提供自己的名稱即可。這裏的@Pete Kirkham的的Python的例子在F#:
type Foo =
member i.bar = printfn "%O" i
使用它,像這樣:
let x = new Foo()
x.bar
在多分派面向對象的語言,如Common Lisp的(CLOS),迪倫或石板,沒有一個統一的接收器對象,因此沒有self
的概念。
- 1. 什麼是正確的方式來返回自己在你自己的副本?
- 2. 如何引用你自己的類而不是System類?
- 3. 最好的方法來引用我自己的類型
- 4. 以不同的方式引用鏈接
- 5. 實現你自己的* ngIf
- 6. 製作你自己的pow()
- 7. 寫你自己的malloc
- 8. 編譯你自己的glibc
- 9. HREF引用自己
- 10. 如何引用來自不同形式的現有引用對象?
- 11. 你可以在Python中引用自己的類嗎?
- 12. 不同的方式來使用PHP
- 13. 你可以暫時禁用mongoid關係來滾動你自己的查詢
- 14. 用你自己的UIImage提供UIImagePicker。
- 15. SAMS教你自己dismissModalViewController不工作
- 16. 使用引導類或自己的類來自定義CSS?
- 17. 方式來引用數組
- 18. 一次引用2個不同IBOutlets的最有效方式(每個只有自己的大小類別)?
- 19. 通用的方式在它自己的方法來替代對象
- 20. Tkinter:Listbox請表現你自己
- 21. 你如何得到一個應用程序來關閉自己?
- 22. 什麼是最好的方式來取代自己
- 23. 來自不同用戶的
- 24. 協議方式自引用
- 25. Android:創建你自己的冒險引擎基礎
- 26. 來自不同類的方法兩次
- 27. 的Python:調用來自類方法的不同類「的方法
- 28. 你如何管理你自己的應用程序?
- 29. 來自不同形式的POST值
- 30. 方式來界定你的文字VBSCRIPT
有趣!我沒有意識到 – curious 2010-09-08 17:32:19
請原諒,但「零」真的磨削我的齒輪。英文中的第一個序數是「第一」。如果我們允許「第零」,那麼你稱之爲「第一」的項目實際上是第二個,而這只是令人困惑。這意味着,當麥當娜談到「第一次感動」時,她並不是指她失去童貞的時候。這首歌必須是「幾乎像一個處女」,而這只是沒有正確的節奏。 – 2010-09-09 11:52:49
@P Daddy它來自'zeroth.func(第一,第二,第三等)'調用的方法,以及一個名爲func(第一,第二,第三等)的自由函數 - 第一個參數是通常是第一個在調用列表內部被調用的內部,第0個是第一個參數之前的那個。由於沒有關鍵字,Python通過將第零個參數作爲定義中的第一個參數,而不是在呼叫站點,來混淆約定。 – 2010-09-09 19:45:33