python透视图中参数和参数有什么区别[不重复:)]? [重复]

问题描述 投票:1回答:2

这个问题在这里已有答案:

我听说这个参数意味着方法参数,(例如在下面的代码中)

def abc(a, b):
    pass

c = 2
d = 3
abc(c,d)

a和b是参数,c和d是参数。如果我错了,请纠正我?

然后在下面的代码中

def abc(c=1,d):
    pass

错误消息是:

SyntaxError:非默认参数遵循默认参数

并且还在下面的代码中

def abc(a,b):
    pass

abc(a=1,2)

错误消息是:

SyntaxError:关键字arg之后的非关键字arg

在两个错误消息中,'无默认参数遵循默认参数'和'关键字arg之后的非关键字arg',为什么没有提到参数?

它使用这两个错误消息给我带来了很多困惑,因此提出了这个问题。错误消息是否有任何特定原因是这样的。你也可以告诉我如何记住与该​​错误相对应的正确错误消息。谢谢。

python python-2.7
2个回答
2
投票

无论何时你调用一个函数假设

def f1(a, b):
    pass

x = 10
y = 20

f1(x, y)

上面的值'x','y'是参数,'a','b'是参数。在函数/方法调用期间,这些变量被称为参数,因为你可以传递任何类似'x','y'或者'p','q'等等。但是在函数定义中,这些变量被称为参数,因为它们只是对于该函数而言,这只是对该函数的限制。

在Python中,存在位置参数,默认参数,非默认参数,关键字参数和命名参数的概念。

def f2(a, b=10):
    pass

x = 10
y = 20

f2(x)
f2(x, y)

在上面的函数中,'b'是一个默认参数,默认情况下它的值是10,如果调用函数f2时,只有1个'a'值会像f2(x)那样出现,变量'b'将是10并且对于'a'= 10.而在f2(x, y)中,f2函数的参数'a','b'将分别为10,20。

永远记住,在函数调用位置参数首先是关键字/命名参数必须稍后,因为位置很重要。在函数定义中,首先是非默认参数,然后是默认参数。非默认值对应于位置1,其余对应于剩余,具体取决于您的函数调用。

在函数调用f2(x)的情况1中,这里'x'是函数调用期间的位置参数,函数定义中的'a'是位置参数,'y'是默认参数。

在函数调用f2(x, y)的情况2中,'x'和'y'都是位置参数,在函数定义'a'和'b'现在都是位置参数,因为'y'将值20传递给参数'b' 。

只有在任何函数调用中没有为该参数传递参数时才会使用任何函数定义的默认值,如case 1 f1(x)f1(p)那么默认值为'b'= 10而'a'将为'x'或'p'。

接下来假设,

def f3(a, b):
    pass

f3(a=5, b=15)
f3(b=100, a=200)

上面的调用f3,其参数'a'为5,'b'为15是关键字/命名参数,因为它们的名称/键与其值相关联。 'a'作为值5的名称/键链接,'b'作为名称/键链接,'b'作为名称/键链接到值'15'。你可以把它想象成一本字典。

在函数调用期间,确保名称/键必须与函数定义相同,否则我们会收到错误。还要确保在函数调用或函数定义中不重复相同的参数/参数也会给我们带来错误。

您可以按任何顺序指定这些基于关键字/命名的参数。像在案例2中我们有f3(b=100, a=200)。在函数定义中,名称/键'a'将对应于值200,名称/键'b'将对应于值100。

def f4(a=1, b=2):
    pass

f4()
f4(b=20)
f4(a=10)
f4(a=100, b=200)
f4(b=50, a=75)

这里的f4函数定义'a'和'b'的默认值为1和2。

在案例1中,将采用默认值。

在情况2中,仅传递'b'作为名称/键值20,其将对应于功能定义处的'b','a'和'b'将分别为1,20。

在情况3中,仅传递'a'作为名称/键值10,其将对应于功能定义处的'a','a'和'b'将分别为10,2。

在情况4中,'a'和'b'都作为名称/键值50,75传递,它们对应于函数定义中的'a'和'b','a'和'b'分别为75和50 。

请记住,名称/键参数仅适用于f4(a=3, b=4)等函数调用期间。并且在函数定义期间def f5(a, b=20)这里'a'是非默认参数或位置参数,'b'是默认参数,因为如果在函数调用f5期间没有传递'b'的值,则将采用默认值。


0
投票

从技术上讲,参数是函数定义中的变量,参数是在调用点给变量的实际值。例如:

def foo(arg):
    return arg

foo('Python')

函数定义中的变量arg是参数,函数调用中的值Python是该参数的参数。

维基百科有一个很好的描述:Parameters and arguments

© www.soinside.com 2019 - 2024. All rights reserved.