Die Standardargumente von Python werden beim Programmstart ausgewertet, nicht bei der Methodenausführung </ b> Ich dachte, dass das Verhalten in Ruby und Scala, das ich bisher verwendet habe, normal war, also war ich ziemlich süchtig danach, ohne zu wissen, was los war
Ruby
def test(t=Time.now)
puts(t)
end
test
sleep(10)
test
Ausführungsergebnis
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
Was ist mit anderen Sprachen?
Recommended Posts