Python 为什么对象不将自身作为第一个参数发送
在学习的过程中,课堂上对这个问题下了赌注。试图用方法创建一个新类并向它发送一些参数,在文献中我将“self”视为方法中的第一个参数,但在我的try not中Python 为什么对象不将自身作为第一个参数发送,python,Python,在学习的过程中,课堂上对这个问题下了赌注。试图用方法创建一个新类并向它发送一些参数,在文献中我将“self”视为方法中的第一个参数,但在我的try not中 class smf(): def __init__(self): pass def check(self, A, B, C): print(A) a=smf a.check(input(), input(), input()) 程序需要4个参数,为什么?我错在哪里?正如评论中已经指出的那样,a=smf应该是a=s
class smf():
def __init__(self):
pass
def check(self, A, B, C):
print(A)
a=smf
a.check(input(), input(), input())
程序需要4个参数,为什么?我错在哪里?正如评论中已经指出的那样,
a=smf
应该是a=smf()
。但是你为什么会犯这样的错误呢
在Python中,
instance.method(args…
是class.method(instance,args…
)的一种语法糖,这解释了为什么方法的第一个参数是实例本身,通常称为self
。通过执行a=smf
,a
是对类本身的另一个引用,因此您实际上是在类中调用方法。方法(实例,args…
某种方式缺少self
实例。a=smf
应该是a=smf()
。按照您编写它的方式,您永远不会创建实例。a、 check(..)与smf.check(..)相同,即使用对象引用调用类的函数,这就是为什么实际上只处理3个参数。如@kevmo314所述,通过smf()创建一个实例。