Cum pot accesa valorile unui np.array care se află în interiorul unei funcții la sfârșitul unei buclă?

Cum pot scrie matricea Q să exceleze după ce se termină bucla? Sau Cum pot vedea datele stocate în Q după ce se termină bucla?

Nlayers=23
N=365

def main_loop(Z,z,Areat0,Areat1,TempLake,i,HSR,TD,FW,wind):
    Q=np.zeros(len(rad))
    Q[0]=0
    Q[i+1]=Qn(HSR,TD,FW,TempLake[0])
    Q0=Q[i]
    Q1=Q[i+1]
    n=TempLake.size
    var00=Imp_scheme(Q0,Q1,z,Areat0,Areat1,Z,TempLake,wind)
    var01=fix_profile(n,var00,Areat0)
    return var01

TempLake=np.zeros((N,Nlayers))
TempLake[0]=T0

for i in xrange(N-1):
    TempLake[i+1]=main_loop(Z,z,Areat0,Areat1,TempLake[i],i,HSR[i],TD[i],FW[i],wind[i]) 
0

1 răspunsuri

Raspunsul scurt este ca nu puteti fara a) returnati-l, b) treceti-l si modificati-l sau c) declarati-l ca fiind global sau ceva echivalent. În majoritatea cazurilor, a este cel mai bun. În ultima linie a funcției, puteți face acest lucru:

return var01, Q

Și în bucla principală pentru :

for i in xrange(N-1):
    result, Q = main_loop(...)
    TempLake[i + 1] = result
do_something_with(Q)

Dar acest lucru este un design destul de ciudat în cazul tău, din moment ce returnezi Q N ori, dar folosești o singură dată. Probabil că există o abordare mai bună, dar nu pot spune din exemplul tău codul ce faci cu adevărat, așa că nu-mi dau seama ce ar putea fi.

0
adăugat
Python România
Python România
100 participanți

Comunitatea pasionaților de Python din România.