【问题标题】:vague explanation of an exercise [closed]对练习的模糊解释[关闭]
【发布时间】:2014-06-26 13:18:57
【问题描述】:

我有一个简短的问题。我一直在 Codeacademy 网站上学习 python,我遇到了一个给你练习的部分。这是练习文本的一部分:

在现有代码下方,定义一个名为 rent_car_cost 的函数,并带有一个名为 days 的参数。

我的问题是,为什么练习调用days 一个参数?不应该是参数吗?

因为参数是一个值,您在调用它时将其赋予函数。

请帮帮我。谢谢

【问题讨论】:

  • 是的。这是更具体的细节(link),但在某些情况下,人们会毫不犹豫地互换使用它。
  • 我一直在使用两者之间切换。作为使用参数(heh)的参数,可变长度参数列表的python默认名称是 args ,命名的是 kwargs (关键字)

标签: python function parameters arguments


【解决方案1】:

为了澄清这个问题的任何人;

参数是函数声明中的变量:

functionName(parameter) {
    // do something
}

参数是传递给函数的这个变量的实际值:

functionName(argument);

关于您的问题; 问题措辞不当;不幸的是,许多人可以互换使用这些名称。

【讨论】:

    【解决方案2】:

    不要想太多。这是对该术语的非正式使用,并不完全正确,但或多或​​少仍被接受。假设 Codecademy 在这种情况下意味着参数。学习愉快!

    【讨论】:

      【解决方案3】:

      参见this previous answer,它引用了parameters 上的(旧版)维基百科文章这样说:

      维基百科的文章还指出,这两个术语经常被使用 同义词(尤其是在非正式地推理代码时):

      虽然参数通常也被称为参数,...

      根据我的经验,“参数”一词的使用频率高于“参数”,尤其是在 Python 中。有一些细微差别,因为我们通常说函数“接受”参数而不是“拥有”它们(和“拥有”参数,而不是接受它们),但这变得有点迂腐了大多数程序员都喜欢这样。

      【讨论】:

        【解决方案4】:

        在某些情况下,您确实希望如此精确地描述函数/方法。例如,如果您正在设计规范或重载函数/方法,那么这种区别将非常重要。这是因为大多数语言处理调用函数的方式。传递给函数的参数通常被发送到一个新的“stack”,在函数执行时它们被分配给临时参数变量。在某些语言中,函数可以“重载”,因此参数的类型(字符串、整数等)会对函数的实际作用产生巨大影响。因此,在某些情况下区分参数和实参是值得的。

        然而,python 不关心类型,所以通常这些东西并不重要。实际上,任何给定数量的参数都会在调用函数时分配给相同的参数,因此可以将它们视为同义词。事实上,python 甚至可以让你直接为参数赋值keyword arguments,完全不需要传统的参数传递,例如:function(foo=0, bar=1)。而且,为了学习python的基础,区分真的没必要。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-12-25
          • 1970-01-01
          • 1970-01-01
          • 2014-03-14
          • 1970-01-01
          • 1970-01-01
          • 2010-11-13
          • 2013-01-08
          相关资源
          最近更新 更多