如何在导入时将参数传递给Python模块?
例如,从命令行运行脚本时,我可以这样做:
python script.py [arg1] [arg2]
我想在python
中导入模块时也这样做我有两个模块,one.py
和two.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
时创建一个新表,并且我希望在导入时传递新表的名称。
答案 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))