die seltsamen Argumente der Reihe [duplizieren]

8

Die Bereichsfunktion in python3 benötigt drei Argumente, von denen zwei optional sind. Die Argumentliste sieht also so aus:

[Start], Stopp, [Schritt]

Das heißt also (korrigiere mich wenn ich falsch liege) da ist ein optionales Argument vor einem nicht optionalen Argument. Aber wenn ich versuche, eine Funktion wie diese zu definieren, bekomme ich das:

%Vor%

ist das, was ich nicht als 'normaler' Python-Benutzer tun kann, oder kann ich irgendwie eine solche Funktion definieren? Natürlich könnte ich etwas wie

machen %Vor%

aber zum Beispiel würde die Hilfe-Funktion dann seltsame Informationen anzeigen. Also ich möchte wirklich wissen, ob es möglich ist, eine Funktion wie oben zu definieren (die erste).

    
Kritzefitz 08.04.2013, 09:03
quelle

3 Antworten

9

range() benötigt 1 Positionsargument und zwei optionale Argumente, und interpretiert diese Argumente abhängig davon, wie viele Argumente Sie übergeben haben.

Wenn nur ein Argument übergeben wurde, wird angenommen, dass es das stop Argument ist, andernfalls wird das erste Argument stattdessen als Start interpretiert.

In Wirklichkeit, range() , codiert in C , dauert ein variable Anzahl von Argumenten. Du könntest das so emulieren:

%Vor%

Sie können aber auch Argumente austauschen:

%Vor%     
Martijn Pieters 08.04.2013, 09:05
quelle
6

range übernimmt keine Schlüsselwortargumente:

%Vor%

es dauert 1, 2 oder 3 Positionsargumente, sie werden entsprechend ihrer Anzahl ausgewertet:

%Vor%

d. Es ist nicht möglich, einen Bereich mit den definierten stop und step und default start zu erstellen.

    
eumiro 08.04.2013 09:07
quelle
1
%Vor%     
NPE 08.04.2013 09:06
quelle

Tags und Links