【问题标题】:How to change anonymous function variables in Python?如何在 Python 中更改匿名函数变量?
【发布时间】:2019-03-14 18:33:24
【问题描述】:

我正在处理一些在线示例。我想用 B0D0 的不同值运行以下值,但它是由匿名函数 lambda 分配的。如何修改

alpha,beta,loc,scale = stats.beta.fit(value)  

error=(scale/(1.96))**2

gpdf = lambda B0, mu, sigma2: 1/np.sqrt(2*pi*sigma2)*np.exp(-1/2*((B0-mu)**2)/sigma2)
approx_sigma2 = lambda scale: (scale/(1.96))**2
ggpdf_v  = lambda B0, D0, error: gpdf(B0, mu=0.8, sigma2=error) * (D0 < 3) + (D0 >= 3) * gpdf(B0, mu=0.5, sigma2=error)
ggpdf_r  = lambda B0, D0, error: gpdf(B0, mu=0.5, sigma2=error)
ggpdf_c  = lambda B0, D0, error: gpdf(B0, mu=0.7, sigma2=error)
ggpdf_v  = lambda B0, D0, error: gpdf(B0, mu=0.9, sigma2=error)

【问题讨论】:

  • 不要像这样使用lambda。如果要命名函数,请使用 def 语句。
  • 我试过了,但我遇到了很多错误。你能在下面发表你的答案吗,谢谢。

标签: python python-3.x lambda anonymous-function


【解决方案1】:

B0 是每个 lambdas 中的一个参数。就像常规函数一样,您可以在调用时为每个参数指定所需的任何值。例如,gpdf(4, 8, 15) 将 B0 设置为 4,将 mu 设置为 8,将 sigma2 设置为 15。

【讨论】:

  • 我可以在函数之外分配这些值吗?
  • 取决于您所说的“功能”。如果您的意思是“我可以在 gpdf 函数之外分配值吗?”,那么是的,这正是我的回答所描述的。如果您的意思是“我的问题中的整个代码示例都在一个函数内部。我可以从该函数外部访问 gpdf 吗?”,除非该函数以某种方式明确地使 gpdf 可用,否则您不能,可能通过返回它或将其分配给一个变量/attribute 在更高的范围内。这不是关于 lambda 的特殊规则。这就是所有 Python 变量的工作原理。
猜你喜欢
  • 2013-11-22
  • 1970-01-01
  • 2015-09-20
  • 2018-03-07
  • 1970-01-01
  • 1970-01-01
  • 2021-12-24
  • 2012-07-10
  • 1970-01-01
相关资源
最近更新 更多