【发布时间】:2013-10-31 20:30:50
【问题描述】:
这是来自here的代码示例:
在函数的参数赋值中相等是什么意思?像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()
【问题讨论】:
-
作为旁注,称这个“任务”可能会让事情变得有点混乱,“平等”更是如此。不幸的是,没有比
=更好的名称了。所以这实际上只是一个警告,要小心不要过多解读符号的名称,没有任何实际帮助...... -
@abarnert,赋值不是为了相等,而是为函数分配参数。
-
@Naji:我不知道那个评论是什么意思。但是您的问题标题和描述都指的是“相等”,然后描述继续谈论“参数分配”。
=在这里既不是相等也不是赋值;这是不同的东西。但它是什么没有好词。 (syntax 没有命名,它只是使用文字"=",下面描述的语义也没有给出名称。) -
@abarnert,我只是说上面使用的“赋值”是用来给函数赋值的。
-
@DavidRobinson 这不是那个 Q 的副本 - 这个问题涉及默认参数,而链接的问题询问位置参数与关键字参数。我似乎找不到适合这个问题的副本。
标签: python function syntax arguments definition