假设根据变量的不同,我想要导入一些类,创建它们的对象并返回。 例如:
if x=='SomeThing':
import something
object = something's object
else:
import nothing
object = nothing's object
object.function()
我要使用lambda来完成上述操作,如何实现?
假设根据变量的不同,我想要导入一些类,创建它们的对象并返回。 例如:
if x=='SomeThing':
import something
object = something's object
else:
import nothing
object = nothing's object
object.function()
__import__
:importer = lambda x: (__import__("pandas").DataFrame if x == 0
else __import__('numpy').arange)
注意:这是非常丑陋的,除非你绝对需要这样做,否则不建议使用。
通常情况下,无条件导入两个模块并稍后选择实际使用的模块是很少出现问题的。
import something
import nothing
(something if x == 'SomeThing' else nothing).object.function()
如果您确实需要执行条件导入,请导入其中一个,但使用相同的名称。
if x == 'SomeThing':
import something as thingmodule
else:
import nothing as thingmodule
thingmodule.object.function()
import
语句。 - Tallambda
?直接使用标准函数定义即可。 - tomjn