您的位置:首页 > 编程语言 > Python开发

Python学习笔记(1)——Python为什么要self

2013-07-13 11:37 423 查看
(1)Python为什么要self

 Python要self的理由

Python的类的方法和普通的函数有一个很明显的区别,在类的方法必须有个额外的第一个参数 (self ),但在调用这个方法的时候不必为这个参数赋值 (显胜于隐 的引发)。Python的类的方法的这个特别的参数指代的是对象本身,而按照Python的惯例,它用self来表示。(当然我们也可以用其他任何名称来代替,只是规范和标准在那建议我们一致使用self)


为何Python给self赋值而你不必给self赋值?

例子说明:创建了一个类MyClass,实例化MyClass得到了MyObject这个对象,然后调用这个对象的方法MyObject.method(arg1,arg2) ,这个过程中,Python会自动转为Myclass.mehod(MyObject,arg1,arg2)

这就是Python的self的原理了。即使你的类的方法不需要任何参数,但还是得给这个方法定义一个self参数,虽然我们在实例化调用的时候不用理会这个参数不用给它赋值。

我的示例代码:

class food:

def __init__(self, name):
self.name = name

def call(self):
print "I am %s." % self.name

a = food("apple")
a.call()

输出结果为:I am apple.

当我把方法改为def call():

python报错:TypeError: call() takes no arguments (1 given)

参考文章:http://www.cnblogs.com/wangkangluo1/archive/2011/09/23/2186479.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  学习笔记