1

Pythonファイルを実際にリンクする方法は理解していますが、これらのリンクされたファイルから変数を取得する方法がわかりません。私はそれらをつかもうとしましたが、NameErrorが発生し続けます。

どうすればこれを行うことができますか?ファイルをリンクしたい理由は、スクリプトを単純に整理し、10000000000行の長さにしないためです。また、インポートされたPythonスクリプトで、すべてを再度インポートする必要がありますか?別の質問、別のスクリプト関数を使用するときに自己関数を使用しますか?

すなわち;

メインスクリプト:

import sys, os
import importedpyfile

インポートされたPyファイル

import sys, os
4

3 に答える 3

3

Pythonファイルを実際にリンクする方法は理解していますが、これらのリンクされたファイルから変数を取得する方法がわかりません。私はそれらをつかもうとしましたが、NameErrorが発生し続けます。

調子はどう?さらにコードを投稿してください。たとえば、次のように機能します。

file1.py

#!/usr/bin/env python

from file2 import file2_func, file2_variable

file2_func()
print file2_variable

file2.py:

#!/usr/bin/env python

file2_variable = "I'm a variable!"

def file2_func():
    print "Hello World!"

また、インポートされたPythonスクリプトで、すべてを再度インポートする必要がありますか?

いいえ、Pythonインタープリターがそのファイルを読み取るときにモジュールをインポートする必要があります。

別の質問、別のスクリプト関数を使用するときに自己関数を使用しますか?

いいえ、それは通常、クラスのメンバーにアクセスするためのものです。Pythonの自己説明を参照してください。

ファイルをインポートする方法も複数あります。いくつかの説明については、他の回答を参照してください。

于 2013-01-13T09:27:46.233 に答える
1

あなたが尋ねようとしているのは、名前空間を処理せずに.pyファイルからグローバル変数にアクセスする方法だと思います。

メインスクリプトで、代わりにimport importedpyfileこれを言うための呼び出しを置き換えます

from importedpyfile import *

理想的には、コードを現在の状態に保ちます。ただし、代わりに、importedpyfile名前空間を使用してこれらのグローバル変数を参照するだけです。

例えば

import importedpyfile
importedpyfile.MyFunction()  # calls "MyFunction" that is defined in importedpyfile.py
于 2013-01-13T09:22:12.870 に答える
0

Pythonモジュールは、ライブラリを実行可能ファイルにリンクするC /C++の意味で「リンク」されていません。Pythonのインポート操作により、インポートされたモジュールを参照する名前が作成されます。この名前がないと、別のモジュールにアクセスする(直接の)方法はありません。

于 2013-01-13T09:22:03.080 に答える