亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 1788 | 回復(fù): 0
打印 上一主題 下一主題

如何理解并正確使用python中的self! [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2006-04-08 14:20 |只看該作者 |倒序瀏覽
《簡明python教程》對self的用法介紹如下:

類的方法與普通的函數(shù)只有一個特別的區(qū)別——它們必須有一個額外的第一個參數(shù)名稱,但是在調(diào)用這個方法的時候你為這個參數(shù)賦值,Python會提供這個值。這個特別的變量指對象本身,按照慣例它的名稱是self。
雖然你可以給這個參數(shù)任何名稱,但是 強烈建議 你使用self這個名稱——其他名稱都是不贊成你使用的。使用一個標準的名稱有很多優(yōu)點——你的程序讀者可以迅速識別它,如果使用self的話,還有些IDE(集成開發(fā)環(huán)境)也可以幫助你。
=======================================================
給C++/Java/C#程序員的注釋
Python中的self
等價于C++中的self指針和Java、C#中的this參考。
=======================================================
你一定很奇怪Python如何給self賦值以及為何你不需要給它賦值。舉一個例子會使此變得清晰。假如你有一個類稱為MyClass和這個類的一個實例MyObject。當你調(diào)用這個對象的方法MyObject.method(arg1, arg2)的時候,這會由Python自動轉(zhuǎn)為MyClass.method(MyObject, arg1, arg2)——這就是self的原理了。
這也意味著如果你有一個不需要參數(shù)的方法,你還是得給這個方法定義一個self參數(shù)。
我這里補充一下幾個實例程序以加深理解:
class Person:
def sayHi(self):
  print 'Hello,how are you?'
p=Person()
p.sayHi()
結(jié)果顯示為:
Hello,how are you?
改一下:
class Person:
def sayHi(self):
  print 'Hello,how are you?'
p=Person()
Person.sayHi(p)
結(jié)是同上!
再改一下:(去掉self,會怎么樣呢?)
class Person:
def sayHi():
  print 'Hello,how are you?'
p=Person()
Person.sayHi(p)
p.sayHi()
出現(xiàn)如下錯誤信息:
Traceback (most recent call last):
  File "C:\pro\Person2.py", line 5, in ?
    Person.sayHi(p)
TypeError: sayHi() takes no arguments (1 given)



本文來自ChinaUnix博客,如果查看原文請點:http://blog.chinaunix.net/u/17118/showart_96896.html
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP