2017-03-15 6 views
3

Pythonモジュールをインポートする際に引数を渡すにはどうすればよいですか?コマンドラインからスクリプトを実行している間、私はこれを行うことができます。例えばインポート時に引数を渡す

、:

python script.py [arg1] [arg2] 

私は私のpython

にモジュールをインポートしていながら、同じことをやってみたい私は、2つのモジュールがあり、 one.pytwo.py

one.py:

name='TestTab' 
import two [arg(which i want to be name variable)] 
tweet = Tweet() 

two.py:

import sqlalchemy 
name= [received arg] 
class Tweet(): 
    __tabname__ = name 
    id = Column(String(255)) 

は基本的に、私は新しいテーブルに私がtwo.pyインポートするたびに作成したい、と私はインポート時に新しいテーブルの名前を渡すことにしたいです。

答えて

1

本当にニシキヘビはないが、可能な最も簡単な方法は、機能はないこと

one.py

import two 
two.name = "test" 
tweet = two.Tweet() 

two.py

import sqlalchemy 
name = None 
class Tweet(): 
    __tabname__ = name 
    id = Column(String(255)) 
2

をあなたの変数を公開することですクラスレベルの変数を使用し、コンストラクタを使用しないでクラスをうまく使用しているわけではありません。これにアプローチする方法は、パラメータをTweetのコンストラクタに渡し、インスタンス変数としてデータを格納することです。

one.py

name='TestTab' 
from two import Tweet 
tweet = Tweet(whatever_name) 

two.py

import sqlalchemy 

class Tweet(object): 
    def __init__(self, name): 
     self.tabname = name 
     self.id = Column(String(255))