我的情景就像 我有一个脚本,我有另一个功能,它将在后台无限循环中运行。在这个后台函数中,我正在修改一个变量。 我希望main函数获得相同的变量更新值..
file name: kkk.py
from junk import *
a={1:2,3:4}
test(a)
print a ---> I want this to get modified from test() defined in the second file
filename:junk.py
from kkk import a
import time
def test(a):
while(True):
print 'inside the infinite loop'
a={999:100}
我希望修改的a值在我打印
时反映在kkk.py中上面的代码告诉我错误,虽然我正确地导入了test(),但测试(a)没有在kkk.py中定义。
有人可以帮我这个吗?
答案 0 :(得分:2)
由于循环导入彼此导入的文件,因此无法正常工作。
您可以执行以下操作:
kkk.py
from junk import *
import common
print common.a
test(common.a)
print common.a
junk.py
import common
import time
def test(a):
while(True):
print 'inside the infinite loop'
common.a={999:100}
break
common.py
a={1:2,3:4}
现在,如果你执行python kkk.py,你将得到以下结果。
{1: 2, 3: 4}
inside the infinite loop
{999: 100}
注意:我在while循环中添加了break in check来检查结果。
答案 1 :(得分:-2)
尝试修改全局变量,如下所示
$text = [
0 => ['Andi', 'NOB', false],
1 => ['menginap', 'V', false],
2 => ['di', 'PREP', false],
3 => ['Hotel', 'N', false],
4 => ['Neo', 'NE', false],
5 => ['Malioboro', 'NE', false],
6 => ['selama', 'N', false],
7 => ['satu', 'NUM', false],
8 => ['minggu', 'N.',false],
];
$flag = [0 => 3, 1 => 4, 2 => 5, 3 => 6];
foreach ($text as $key => &$value) {
if(in_array($key, $flag)){
$value[2] = true;
}
}
echo "<pre>";
print_r($text);
这将修改全局变量