Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Pass arg while importing

Tags:

python

How can I pass an argument to a Python module while importing it?

For instance, while running a script from command line, I can do this:

python script.py [arg1] [arg2]  

I want to do the same while I am importing a module in python

I have two modules, one.py and 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))

Basically, I want to create a new table every time I import two.py, and I want the name of the new table to be passed while importing.

like image 315
Usama Avatar asked Mar 03 '26 22:03

Usama


2 Answers

That's not a feature of Python, and you're not using classes well by using class-level variables and no constructor. The way to approach this is to pass the parameter to the constructor of Tweet, and store the data as instance variables.

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))
like image 88
TessellatingHeckler Avatar answered Mar 05 '26 12:03

TessellatingHeckler


Not really pythonic but a possible simplest way is to expose your variable out

one.py

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

two.py

import sqlalchemy
name = None
class Tweet():
    __tabname__ = name
    id = Column(String(255))
like image 43
Huy Le Avatar answered Mar 05 '26 11:03

Huy Le



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!