导入

时间:2017-03-15 07:30:06

标签: python

如何在导入时将参数传递给Python模块?

例如,从命令行运行脚本时,我可以这样做:

python script.py [arg1] [arg2]  

我想在python

中导入模块时也这样做

我有两个模块,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时创建一个新表,并且我希望在导入时传递新表的名称。

2 个答案:

答案 0 :(得分:2)

这不是Python的一个特性,并且你没有通过使用类级变量和没有构造函数来很好地使用类。解决这个问题的方法是将参数传递给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))

答案 1 :(得分:1)

不是真正的pythonic,但最简单的方法是将变量公开

one.py

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

two.py

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