求解一个关于class类与实例对象之间关系的问题
class Ball:def setName(self,name):
self.name = name
def kick(self):
print('还踢%s?'%self.name)
定义了一个类Ball
然后我在调用时出现问题……
a = Ball
a.setName('头盖骨')
提示TypeError: setName() missing 1 required positional argument: 'name'
然后我尝试着加上‘name'……
a.setName(a,'头盖骨')
这样就能运行了,但麻烦还没结束……
然后我尝试着输入:
b = Ball
b.setName(b,'土豆')
b.kick()
提示TypeError: kick() missing 1 required positional argument: 'self'
既然它要‘self’,那我就加一个试试:
b.kick(b)
输出‘还踢土豆?’
但是问题还没结束……
继续输入:
a.kick(a)
顺利地输出‘还踢头盖骨?’
此时再次输入:
b.kick(b)
依旧输出‘还踢头盖骨?’
求助问题如下:
1.从py332到py382,是语法改变了么?
2.不是说这样调用class会产生不同的实例对象么?为什么不同的实例对象之间还会互相冲掉原值?
对象实例化的时候需要括弧吧
a = Ball()
a.setName('头盖骨')
a.kick() a = Ball根本没实例化 redforce 发表于 2020-5-1 19:42
对象实例化的时候需要括弧吧
a = Ball()
a.setName('头盖骨')
原来如此,少一个()
页:
[1]