0

Python スクリプトを考えてみましょう:

####
#Do some stuff#

####
#Do stuff from separate file

####
#Do other stuff

中間ビットを実装する最良の方法は何ですか (別のファイルで定義されているものを実行します)? C++ には、私がやりたいことを達成できるコマンドがあると言われました。Pythonに同等のものはありますか?

たとえば、A.py が次の場合:

print 'a'

### import contents of other file here

print 'm'

B.py は次のとおりです。

print 'b'
print 'c'
print 'd'

A.py の望ましい出力は次のとおりです。

a
b
c
d
m

B.py には、実際には print ステートメントは含まれず、A.py で宣言または定義されたものと競合しない変数の割り当てと単純なフロー制御が含まれます。B.py の内容を関数に入れ、これを A.py にインポートして、この関数を目的の場所で呼び出すことができることを理解しています。B.py の内容が単一の値を返すようにしたい場合は、それで問題ありません。ただし、B.py の内容には、たとえば 20 個の変数の割り当てが含まれる場合があります。

私が本当にやりたいことは、A.py内でB.pyの内容を実行することではなく、A.pyの目的の行にBの内容を含むようにA.Pyを動的に変更することだと思います.パイ。次に、明らかに、更新された A.py を実行します。

考えやヒントは大歓迎です。

4

2 に答える 2

1

これは良いプログラミング手法ではないと思いますが、execfileを使用して別のファイルのすべてのコードを実行できます。

#a.py
a = a + 5

#b.py
a = 10
execfile("a.py")
print a 

実行b.pyすると、「15」が出力されます。

于 2012-11-23T14:14:52.300 に答える
0

これを行う方法は、関数内の b にコードを配置し、a からインポートすることです。

# b.py
def foo():
    print 'b'
    print 'c'
    print 'd'


# a.py
import b

print 'a'
b.foo()
print 'm'
于 2012-11-23T14:06:43.720 に答える