据我了解,在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
中的函数,但如果可能的话,我不想这样做。
答案 0 :(得分:1)
试试execfile
。
替换
import callee
通过
execfile("callee.py")
与import
比较,execfile
需要更多异常处理,您应该考虑脚本中会发生异常。虽然我认为php也需要它。
答案 1 :(得分:0)
好吧,在Python中,它使用命名空间, 试试
print callee.a
在导入被调用者之后这将适用于您的工作。你会发现一个callee.pyc,它是Python中的一个编译文件。