33

私は新しく、単純なランダム文ジェネレーターを作成しようとしています-別の.pyドキュメントに保存されているリストからランダムなアイテムを引き出すにはどうすればよいですか? 私は使用しています

random.choice(verb_list) 

リストから引っ張る。verb_list が別のドキュメントにあることを python に伝えるにはどうすればよいですか?

また、ソリューションの背後にある原理が何と呼ばれているかを知っておくと役立ちます。「ファイル参照」「ファイルブリッジ」などのようなものだと思います。

4

2 に答える 2

79

ファイルから変数をインポートできます。

vardata.py

verb_list = [x, y, z]
other_list = [1, 2, 3]
something_else = False

mainfile.py

from vardata import verb_list, other_list
import random

print random.choice(verb_list) 

次のこともできます。

from vardata import *

そのファイルからすべてをインポートします。ただし、これには注意してください。名前の衝突は避けたいものです。

または、ファイルをインポートして、名前空間を介して変数にアクセスすることもできます。

import vardata
print vardata.something_else
于 2013-01-28T23:30:30.880 に答える
10

輸入といいます。

これが次の場合data.py:

verb_list = [
    'run',
    'walk',
    'skip',
]

これはfoo.py次のとおりです。

#!/usr/bin/env python2.7

import data
print data.verb_list

するとrunningfoo.pyはからアクセスverb_listdata.pyます。


Python チュートリアルのモジュール セクションを参照してください。


verb_list他のことも行いたいスクリプトに が格納されている場合、変数をインポートするだけでスクリプトが実行されるという問題が発生します。その場合の標準的な方法は、すべてのスクリプト機能を という関数に保持してからmain()、魔法の呪文を使用することです。

verb_list = [
    'run',
    'walk',
    'skip',
]

def main():
    print 'The verbs are', verb_list

if __name__ == '__main__':
    main()

のコードはmain()実行されませんimport data興味のある方は、Python の作成者である Guido van Rossum が、より精巧なPythonmain()関数の作成に関する記事を書いています。

于 2013-01-28T23:18:16.947 に答える