Python的类的self参数问题
>>> class Ball:def setname(name):
self.name = name
print(self.name)
>>> a = Ball()
>>> b = Ball()
>>> a.setname('a')
Traceback (most recent call last):
File "<pyshell#36>", line 1, in <module>
a.setname('a')
TypeError: setname() takes 1 positional argument but 2 were given
>>> b.setname('b')
Traceback (most recent call last):
File "<pyshell#37>", line 1, in <module>
b.setname('b')
TypeError: setname() takes 1 positional argument but 2 were given
为什么缺少self参数后会报这样的错误? 还有为什么要初始化对象?__init__方法是如何初始化对象的?他的工作过程是什么?
没有self,就不知道你的name要到底传递给哪个对象
self指向了当前调用的这个对象,比如a.setname('a'),如果有self,那么这个self就是指向a的 BngThea 发表于 2017-12-15 08:57
没有self,就不知道你的name要到底传递给哪个对象
self指向了当前调用的这个对象,比如a.setname('a'),如 ...
还有为什么要初始化对象?__init__方法是如何初始化对象的?他的工作过程是什么? BngThea 发表于 2017-12-15 08:57
没有self,就不知道你的name要到底传递给哪个对象
self指向了当前调用的这个对象,比如a.setname('a'),如 ...
还有它为什么说我传递了两个位置参数? py大神 发表于 2017-12-15 10:11
还有它为什么说我传递了两个位置参数?
任何一个类对象调用函数的时候都默认有一个self参数
你写a.setname('a')除了‘a',还有self
但是你的函数定义中没有self,所以报错 py大神 发表于 2017-12-15 10:10
还有为什么要初始化对象?__init__方法是如何初始化对象的?他的工作过程是什么?
python中初始化可以什么都不做
其他语言,中初始化的时候会分配内存空间,当你申明一个对象的时候,系统需要知道它到底占多大的位置
页:
[1]