Czy można bezpiecznie założyć, że argumenty funkcji są oceniane od lewej do prawej w Pythonie?Czy można polegać na kolejności oceny argumentów funkcji Pythona?
Odniesienia stwierdza, że tak się dzieje, ale być może jest jakiś sposób, aby zmienić tę kolejność, która może złamać mój kod.
Co chcę zrobić jest dodanie znacznika czasu dla wywołania funkcji:
l = []
l.append(f(), time.time())
Rozumiem, że mogę ocenić argumenty kolejno:
l = []
res = f()
t = time.time()
l.append(res, t)
Ale wygląda mniej elegancki więc jestem Wolę pierwszy sposób, jeśli mogę na nim polegać.
Jeśli odnośnik mówi tak i nie mówi wprost, że może się to zmienić w przyszłości, możesz na nim polegać. –
'" jakiś sposób na zmianę tej kolejności "' Jak można to zmienić? (Funkcje nie mają możliwości wyboru sposobu oceny ich argumentów, są oceniane przed ich przekazaniem do funkcji) –
W twoim przypadku użycia, kolejność oceniania nie ma znaczenia, chyba że 'f() 'jest długotrwałą funkcją. – Xaqq