python传递变量来导入文件

时间:2013-11-13 04:14:32

标签: php python

据我了解,在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中的函数,但如果可能的话,我不想这样做。

2 个答案:

答案 0 :(得分:1)

试试execfile

替换

import callee

通过

execfile("callee.py")

import比较,execfile需要更多异常处理,您应该考虑脚本中会发生异常。虽然我认为php也需要它。

答案 1 :(得分:0)

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

print callee.a

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