python中构建了一个类,在定义了一个函数时为什么括号第一个self有什么用,为什么不能给他赋值

比如
class muffledcalculator:
muffled=False
def calc(self,expr):
。。。。
就这些
为什么赋值直接就给expr赋值了 self有什么用呢
怎么给self赋值

self 指的是你定义的这个类被调用创建了一个实例时,self就是这个实例。
可以这么说,self就是要使用你这个函数的实例的名称,这个self在类中必须要加,当然名字不一定是self,self只是传统变量名一直被沿用了而已。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-12-18
对象调用方法时, 实际上是通过类调用的
a = muffedcalculator()
a.calc(expr)

实际上是这样调用的 muffledcalculator.calc(a, expr)
这样self 就是 a, python隐含地把a 传进方法 替代了self, 就成了绑定的方法, 就可以执行了. 否则就是非绑定方法本回答被提问者采纳
第2个回答  2011-12-17
这是Python的类定义格式标准,self的使用与Java的this相似,用于标识类的实例。
第3个回答  2011-12-17
加了self之后你可以在实例化后调用该函数。
相似回答