In diesem Anwendungsfall geht es um die Übergabe von Funktionsparametern
Die Python-Version, die ich verwende, ist 3.3.2
Für Funktionen:
1
2
3
4
5
6
7
8
def fun(arg):
print(arg)
def main() :
fun('hello,Hongten')
if __name__ == '__main__':
main()
Wenn wir einen Parameter an die fun()-Funktion übergeben, können wir die übergebenen Parameterwertinformationen ausdrucken.
Die hier gedruckten Informationen lauten:
Hallo, Hongten
Für den folgenden Anwendungsfall:
1
2
3
4
5
6
7
8
9
def fun(a=1, b=None, c=None, *args):
print('{0},{1}, { 2},{3}'.format(a, b, c, args))
def main():
fun(a='one' )
fun('one')
if __name__ == '__main__':
main()
Wenn die übergebenen Parameter fun(a='one') und fun('one') sind, wird der Wert in Parameter a kopiert und die Auswirkungen beider Parameter sind gleich :
one,None,None,()
one,None,None,()
Natürlich können wir auch Parameter angeben: b,c,* args Zuweisung
wie:
1
2
3
4
5
6
7
8
def fun(a=1, b=None, c=None, * args ):
print('{0},{1},{2},{3}'.format(a, b, c, args))
def main():
fun('one',1,2,('hongten'))
if __name__ == '__main__':
main()
Auf diese Weise weisen wir den Parametern Werte zu: b, c, args
Operating Wirkung:
one,1,2,('hongten',)
Im obigen Beispiel können wir die Parameter a, b, c vor den Parametern *args und copy nicht umgehen sie zu *args:
Zum Beispiel:
def fun(a=1, b=None, c=None, *args): print('{0},{1},{2},{3}'.format(a, b, c, args)) def main(): fun(args=('hongten')) if __name__ == '__main__': main()
Betriebseffekt:
Traceback (letzter Anruf zuletzt ):
Datei „E:/Python33/python_workspace/test_fun.py“, Zeile 21, in
main()
Datei „E:/Python33 /python_workspace/test_fun.py", Zeile 18, in main
fun(args=('hongten'))
TypeError: fun() got an unerwartetes Schlüsselwortargument 'args'
Aber für Parameter: a, b, c können auf diese Weise zugewiesen werden
wie zum Beispiel:
def fun(a=1, b=None, c=None, *args): print('{0},{1},{2},{3}'.format(a, b, c, args)) def main(): fun(c=('hongten'), b=2, a=[1,2,3]) if __name__ == '__main__': main()
Laufen Wirkung:
[1, 2, 3],2,hongten,()