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

つまり、 variable の値が$afile に渡されます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

ただ試してみてくださいexecfile

交換

import callee

execfile("callee.py")

と比較してimportexecfileより多くの例外処理が必要です。スクリプトで例外が発生することを考慮する必要があります。phpにも必要だと思いますが。

于 2013-11-13T04:52:16.370 に答える
0

Python では、名前空間を使用します。試してみてください。

print callee.a

呼び出し先をインポートした後、それはあなたの仕事でうまくいきます。そして、Python でコンパイルされたファイルである callee.pyc が見つかります。

于 2013-11-13T04:45:14.843 に答える