我導入兩個不同的模塊,都覆蓋標準的數學函數,例如,登錄()。我有幾種不同的方式來解決這個衝突。這將是最pythonic?大多數pythonic方式來處理導入的函數覆蓋衝突
選項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:
???
不要使用'*',你不會有問題,你正在污染你的名字空間,如果需要的話,導入你想明確給出別名的東西 –
Yuck。 Python的'using namespace std;'。 – erip
選項3絕對更好。 – chepner