我正在导入两个不同的模块,它们都覆盖了标准的数学函数,例如log()。我有几种不同的方法来解决这场冲突。哪一个最像Python?你知道吗
方案1:
from pyomo.environ import *
import casadi
def coolFunction():
pyomo_x = Var()
pyomo_f = log(x)
def niceFunction():
casadi_x = casadi.SX.sym('x')
casadi_f = casadi.log(x)
方案2:
from pyomo.environ import *
def coolFunction():
pyomo_x = Var()
pyomo_f = log(x)
def niceFunction():
from casadi import *
casadi_x = SX.sym('x')
casadi_f = casadi.log(x)
方案3:
???
不要使用
from something import *
。使用import something
或from something import foo, bar, ...
。你知道吗如果要以第二种方式导入函数,并从两个不同模块导入两个同名函数,可以编写:
正如pm2ring在注释中指出的,您还可以使用
as
将模块重命名为较短的名称,以保持层次结构:只需导入模块并给出清晰简短的名称,例如:
不要在函数内部使用
from xy import *
或导入。您应该始终立即看到,导入了哪些名称,模块具有哪些依赖项。你知道吗相关问题 更多 >
编程相关推荐