Ausführzeitpunkt, Gültigkeitsdauer einer Variablen
Verfasst: Sonntag 10. November 2019, 22:10
Hallo
Zuerst einmal: Verzeiht mir, wenn ich möglicherweise eine Frage im falschen Teil poste, aber es gibt glaub nichts passenderes und wem das Beispiel banal vorkommt - ich beschäftige mit erst seit einige Tagen mit Python. Andere Programmiersprachen kenne ich einige ....
Bei einem Beispiel das ich bei python-kurs.eu gefunden habe, bin ich auf zwei seltsame Effekte gestossen.
Ist es so, dass der Code erst dann ausgeführt wird, wenn man das Resultat verwendet (numbers und der type werden ausgegeben bevor "addition" etwas ausgibt) Offensichtlich wird die Funktion erst bei 3 ausgeführt Ich hätte da etwas anderes erwartet ...
Bei 4 wird [] ausgegeben - warum das?
Zuerst einmal: Verzeiht mir, wenn ich möglicherweise eine Frage im falschen Teil poste, aber es gibt glaub nichts passenderes und wem das Beispiel banal vorkommt - ich beschäftige mit erst seit einige Tagen mit Python. Andere Programmiersprachen kenne ich einige ....

Bei einem Beispiel das ich bei python-kurs.eu gefunden habe, bin ich auf zwei seltsame Effekte gestossen.
Ist es so, dass der Code erst dann ausgeführt wird, wenn man das Resultat verwendet (numbers und der type werden ausgegeben bevor "addition" etwas ausgibt) Offensichtlich wird die Funktion erst bei 3 ausgeführt Ich hätte da etwas anderes erwartet ...
Bei 4 wird [] ausgegeben - warum das?
Code: Alles auswählen
1: (1, 2, 3, 4)
2: <class 'map'>
MapDemo.addition( 1 )
MapDemo.addition( 2 )
MapDemo.addition( 3 )
MapDemo.addition( 4 )
3: [2, 4, 6, 8]
4: []
Code: Alles auswählen
class MapDemo:
# Return double of n
def addition(n):
print("MapDemo.addition(", n, ")")
return n + n
def doIt():
# We double all numbers using map()
numbers = (1, 2, 3, 4)
result = map(MapDemo.addition, numbers)
print("1:", type(result))
print("2:", list(result))
print("3:", list(result))
if __name__ == "__main__":
MapDemo.doIt()