3

这是此处的代码示例:

函数的参数赋值中的相等是什么意思?喜欢N=20000这里?N那和简单的论点有什么区别?导入随机数,数学

def gibbs(N=20000,thin=500):
   x=0
   y=0
   samples = []
   for i in range(N):
       for j in range(thin):
           x=random.gammavariate(3,1.0/(y*y+4))
           y=random.gauss(1.0/(x+1),1.0/math.sqrt(x+1))
       samples.append((x,y))
   return samples

smp = gibbs()
4

2 回答 2

4

在函数定义中,它指定参数的默认值。例如:

>>> def func(N=20000):
...     print(N)
>>> func(10)
10
>>> func(N=10)
10
>>> func()
20000

在第一次调用中,我们使用N位置参数为参数指定一个值,10。在第二次调用中,我们使用N关键字参数 为参数指定一个值N=10。在第三个调用中,我们根本没有指定一个值——所以它得到了默认值,20000.

请注意,使用关键字参数调用函数的语法看起来非常类似于使用具有默认值的参数定义函数的语法。这种平行并非偶然,但重要的是不要被它混淆。当您解压参数与变量参数参数等时,更容易混淆自己。除了最简单的情况外,即使您得到了它,这一切在直觉上都是有道理的,但实际上仍然很难得到细节直接在你的脑海里。这篇博文试图将所有解释集中在一个地方。我不认为它做得很好,但它至少有指向文档中所有相关内容的有用链接……</p>

于 2013-10-22T19:42:52.550 回答
1

它指定一个默认值。如果程序在未定义的值上失败,这将特别有用。例如,如果它只是 n,并且您没有为函数提供任何变量,它将失败。默认情况下不会。

于 2013-10-22T20:11:32.730 回答