I want to import some package depending on which value the user chooses.
The default is file1.py
:
from files import file1
If user chooses file2
, it should be :
from files import file2
In PHP, I can do this using variable variables:
$file_name = 'file1';
include($$file_name);
$file_name = 'file2';
include($$file_name);
How can I do this in Python?
Python doesn't have a feature that's directly equivalent to PHP's "variable variables". To get a "variable variable"'s value (or the value of any other expression) you can use the eval
function.
foo = "Hello World"
print eval("foo")
However, this can't be used in an import
statement.
It is possible to use the __import__
function to import using a variable.
package = "os"
name = "path"
imported = getattr(__import__(package, fromlist=[name]), name)
is equivalent to
from os import path as imported