python : keyword arguments reprise

hide@deb1:~$ python
Python 2.4.4 (#2, Apr  5 2007, 20:11:18)
[GCC 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)] on linux2
>>> def f(a,b,**c):
...   print a,b,c
...
>>> f(1,2)
1 2 {}
>>> f(1,2,x=3)
1 2 {'x': 3}
>>> f(1,2,x=3,y=4,z=5)
1 2 {'y': 4, 'x': 3, 'z': 5}
>>> f(1,2,x=(3,4,5))
1 2 {'x': (3, 4, 5)}
>>> f(a=1,b=2,c=3)
1 2 {'c': 3}
>>> f(c=3,b=2,a=1)
1 2 {'c': 3}
>>> f(1,2,a=3)
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
TypeError: f() got multiple values for keyword argument 'a'
>>> f(x=3,1,2)
SyntaxError: non-keyword arg after keyword arg
>>> f(a=1,2)
SyntaxError: non-keyword arg after keyword arg
>>> f(1,2,{'x':3,'y':4,'z':5})
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
TypeError: f() takes exactly 2 arguments (3 given)
 
>>> def f(a=3):
...    print a
...
>>> f()
3
>>> f(5)
5
>>> f(a=10)
10

 

>>> def f(a=0,b):
...   print a,b
...
SyntaxError: non-default argument follows default argument
>>> def f(a=0,b=0):
...   print a,b
...
>>> f(1,2)
1 2
>>> f(a=1,b=3)
1 3
>>> f(b=5,a=10)
10 5
>>>
>>> f(1,b=2)
1 2
>>> f(a=1,2)
SyntaxError: non-keyword arg after keyword arg
>>>
カテゴリー: 未分類 パーマリンク

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中