为什么对象不要将自己作为第一个参数发送

时间:2018-01-07 03:50:52

标签: python

虽然学习课程的问题依然存在。尝试使用方法创建一个新类并向其发送一些参数,在文献中我将“自我”视为方法中的第一个参数,但在我的尝试中没有。

class smf():
  def __init__(self):
    pass
  def check(self, A, B, C):
    print(A)

a=smf
a.check(input(), input(), input())

程序需要4个参数,为什么?我哪里错了?

1 个答案:

答案 0 :(得分:0)

正如评论中所述,a=smf应为a=smf()。但是你为什么会得到那个错误?

在Python中,instance.method(args...)class.method(instance, args...)的一种语法糖,这解释了为什么方法的第一个参数是实例本身,通常称为self。通过执行a=smfa是对类本身的另一个引用,因此您实际上以class.method(instance, args...)方式调用该方法错过了{{} 1}}实例。