代码之家  ›  专栏  ›  技术社区  ›  Leif Andersen

多余的python参数

  •  1
  • Leif Andersen  · 技术社区  · 14 年前

    foo() 
    

    意味着要么没有参数,要么尽可能多的参数,或者

    foo(arg1, arg2,...,argn)
    

    传入相同数量的参数来定义函数并调用它。但是在python中,我注意到函数定义和调用函数时,可以有两个不同的参数集,这通常包括:

    class foo(object):
        def bar(self, arg1, arg2):
            pass
    

    但是,当我想调用函数时,我所要做的就是:

    zoo = foo()
    zoo.bar(arg1, arg2)
    

    非常感谢。

    4 回复  |  直到 14 年前
        1
  •  7
  •   sepp2k    14 年前

    self参数去了哪里?

    当你调用函数时,它在点的前面,也就是说,在你的例子中,它是 zoo

    请注意,您也可以将函数调用为 foo.bar(zoo, arg1, arg2) . 基本上是python object.method(arguments) 是一条捷径 objects_class.method(object, arguments) .

        2
  •  3
  •   Fred Larson    14 年前

    zoo 是自参数。

    例如,在C++中,您可以将隐式传递的对象作为 this 指针。在Python中,这个参数是显式的。

        3
  •  1
  •   Karmic Coder    14 年前

    zoo

        4
  •  0
  •   ony    14 年前

    我记得,“zoo.bar”只提供了对象“zoo”的属性“bar”,可以调用它。所有的魔法都是在构造类的所有方法都是 当属性字典被填充时。 考虑下一个例子:

    zoo = foo()
    xbar = zoo.bar
    xbar(arg1, arg2)