TS = TE+C(TE,D,O_),这行有问题,如果TE是个常数,结果正常,但TE里有方法C(TS,D,O_),这要怎么搞,如何让这个式子TS = TE+C(TE,D,O_)正常运行

import numpy as np
import random
import re
import math
opt_travel=[[0,23,14,19,24],[23,0,34,42,7],[14,34,0,10,38],[19,42,10,0,43],[24,47,38,43,0]]
opt_travel=np.array(opt_travel,dtype=np.float32) #列表元素转浮点型,方便后续计算
opt_travel_eh=opt_travel*1.4
opt_travel_es=opt_travel*1.1
opt_travel_lh=opt_travel*1.5
opt_travel_ls=opt_travel*1
message={1:[3,4,1,3,30,60,60,90],2:[6,2,2,4,50,80,100,130],3:[5,3,3,4,150,180,180,210],
4:[8,1,4,3,200,230,240,270],5:[8,9,4,2,290,320,320,350],6:[4,7,3,1,320,350,380,410],
7:[8,2,0,2,0,0,110,140],8:[1,1,0,3,0,0,200,230],9:[3,6,0,3,0,0,400,430]}
TW_O_L=message.get(1)[4]
TW_O_R=message.get(1)[5]
TW_D_L=message.get(1)[6]
TW_D_R=message.get(1)[7]
O = message.get(1)[2]
D=message.get(1)[3]
O_=message.get(2)[2]
TS=opt_travel_eh[0][O] + 10
def C(TS,O,D):
CS=(TS+10+15)/30
CS=math.ceil(CS) #向上取整
if CS==1 or CS==2:
opt_travelc = opt_travel_eh[O][D]
elif CS==3 or CS==4:
opt_travelc = opt_travel_es[O][D]
elif CS==5 or CS==6:
opt_travelc = opt_travel_lh[O][D]
elif CS==7 or CS==8:
opt_travelc = opt_travel_ls[O][D]
return opt_travelc
TF=TS+10+15+C(TS,O,D)
TE=TF+15
TL = TE+C(TE,D,O_)
for i in range(5):
i=i+2
TW_O_L = message.get(i)[4]
TW_O_R = message.get(i)[5]
TW_D_L = message.get(i)[6]
TW_D_R = message.get(i)[7]
O = message.get(i)[2]
D = message.get(i)[3]
O_ = message.get(i + 1)[2]
TS = TE+C(TE,D,O_)
TF = TS + 10 + 15 + C(TS, O, D)
TE = TF + 15