Я импортирую два разных модуля, которые переопределяют стандартные математические функции, например. журнал(). У меня есть несколько разных способов разрешения этого конфликта. Что было бы самым пифоническим?Большинство 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. «использование пространства имен std;» из Python. – erip
Вариант 3 определенно лучше. – chepner