Недавно я переустанавливал анаконду и sympy.Затем я запускаю тот же код, например, как следующий, что дает мне ошибки.(У меня нет такой ошибки раньше)
import sympy as sp
a, b= sp.symbols('a b', cls=sp.IndexedBase)
l= sp.symbols('l', cls=sp.Wild)
def Bfunc(expr,p1,p2):
if expr.base==p1:return expr.replace(p1[l],0.2*(p2[l]+p1[-l]),map=False, simultaneous=True, exact=True)
else: return expr.replace(p2[l],0.2*(p1[l]+p2[-l]),map=False, simultaneous=True, exact=True)
inputstate=a[0]*b[0]
psi0=inputstate.replace(lambda expr: expr.base in [a,b], lambda expr: Bfunc(expr,a,b))
Это дает мне ошибку:
Проблема expr.base , который не может дать базу a или b .
Давайте рассмотрим очень простой пример:
import sympy as sp
a, b= sp.symbols('a b', cls=sp.IndexedBase)
l= sp.symbols('l', cls=sp.Wild)
inputstate=a[0]*b[0]
inputstate.base
ошибка:
Traceback (most recent call last):
File "<ipython-input-59-7cc51ba4a4cd>", line 6, in <module>
inputstate.base
AttributeError: 'Mul' object has no attribute 'base'
Если inputtate = a [0] , то inputtate.base дает вам a .
Поэтому мне интересно, почему такая ошибка происходит после того, как я переустановил sympy и anaconda.Или есть какой-нибудь способ дать весь базовый список и исправить ошибку?
Если у кого-то есть подобные случаи, было бы очень здорово, если бы вы могли дать мне несколько советов.Заранее спасибо!