Les arguments par défaut de Python sont évalués au démarrage du programme, pas lors de l'exécution de la méthode </ b> Je pensais que le comportement de Ruby et Scala que j'avais utilisé jusqu'à présent était normal, donc j'en étais assez accro sans savoir ce qui n'allait pas
Ruby
def test(t=Time.now)
puts(t)
end
test
sleep(10)
test
Résultat d'exécution
2020-09-02 09:05:42 +0900
2020-09-02 09:05:52 +0900
Scala
object Test {
def test(t: DateTime = DateTime.now()): Unit = {
println(t)
}
def run(): Unit = {
test()
Thread.sleep(10000)
test()
}
}
2020-09-02T09:14:08.681+09:00
2020-09-02T09:14:18.732+09:00
Python
import datetime
import time
def test(t=datetime.datetime.now()):
print(t)
test()
time.sleep(10)
test()
2020-09-02 09:20:40.970098
2020-09-02 09:20:40.970098
Et les autres langues?
Recommended Posts