0

据我了解,在 php 中,该require_once('filename.php')函数本质上是获取内容'filename.php'并将其内联放置在require_once调用发生的当前文件中。这使我能够执行以下操作:

$ cat caller.php
#!/usr/bin/php
<?php
$a = 'value of variable a';
require_once('callee.php');
?>
$ cat callee.php
<?php echo $a; ?>
$ ./caller.php
value of variable a

换句话说,变量的值$a被传递给文件callee.php

有没有办法在python中将变量传递给另一个像这样的文件?我试过这个,但它不起作用:

$ cat caller.py
#!/usr/bin/env
a = 'value of variable a'
import callee
$ cat callee.py
print a
$ ./caller.py
Traceback (most recent call last):
  File "/tmp/caller.py", line 3, in <module>
    import callee
  File "/tmp/callee.py", line 1, in <module>
    print a
NameError: name 'a' is not defined

我想我可以将变量作为参数传递给 内的函数callee.py,但如果可能的话,我不想这样做。

4

2 回答 2

1

Just try execfile.

Replace

import callee

By

execfile("callee.py")

Compare to import, execfile needs more exception handling, you should consider the exceptions will occur in the script. Although I think php needs it also.

于 2013-11-13T04:52:16.370 回答
0

好吧,在 Python 中,它使用命名空间,只需尝试

print callee.a

在 import callee 之后,这将适用于您的工作。你会发现一个 callee.pyc,它是 Python 中的一个编译文件。

于 2013-11-13T04:45:14.843 回答