gpt4 book ai didi

python - python和C中变量的初始化

转载 作者:行者123 更新时间:2023-11-30 17:24:38 25 4
gpt4 key购买 nike

我正在将 C 代码重写为 python,但似乎我已经卡住了。

我在C:中有这个函数

  double GetArrival()
/* ---------------------------------------------
* generate the next arrival time, with rate 1/2
* ---------------------------------------------
*/
{
static double arrival = START;

SelectStream(0);
arrival += Exponential(2.0);
return (arrival);
}

此函数是从 main() 调用的功能。正如你每次调用时所看到的,到达时添加指数随机率 2.0。您所需要知道的是,它是一个返回随机变量的自定义函数。

在咨询了 C 文件上的 ddd 后,我意识到在下面的 python 中“等效”变量 arrival每次调用函数 GetArrival() 时都会初始化为 START = 0。由于某种原因,除了第一次调用该函数之外,这种情况在 C 中不会发生。

def GetArrival():
arrival = START
SelectStream(0)
arrival += Exponential(2.0)
return arrival

所以我想我应该忽略这个邪恶的初始化,这样就可以了。没有,因为在这种情况下我收到以下错误:

UnboundLocalError: local variable 'arrival' referenced before assignment

这有点道理。

所以我的问题是如何使 python 代码像 C 中的代码一样工作,而不需要变量 arrival每次都初始化为零?

谢谢。

最佳答案

我认为这与 python 处理静态变量的方式与 C 不同有关。尝试引用在Python中创建静态变量(函数中的静态变量,而不是类)。 This stack overflow reference should be of help to you .

关于python - python和C中变量的初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27206363/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com