知らんかった。。。ていうか見たことある書き方だったけど、ずっとリファレンス渡しだと勘違いしていました。。。orz
def two(image_path, **start_point): print(start_point.x) # 768 print(start_point.y) # 256 two(image_path, x=768, y=256)
追記
もっと詳しく書けばよかったね。
two()
って関数は引数を2つもつ。しかし、呼び出し側は引数が3つある。
これは第一引数はimage_path
で、第二引数、第三引数はdictionaryとなって渡されることになる。
ちなみに、「じゃあdictionaryが続く引数は渡せるの?」って疑問について。(多分そう思った人いるでしょ?)
>>> def test_function(**dic, **dic2): File "<stdin>", line 1 def test_function(**dic, **dic2): ^ SyntaxError: invalid syntax >>> def test_function(*dic, **dic2): ... print(dic) ... print(dic2) ... >>> test_function((1,2), x=1, y=2) ((1, 2),) {'x': 1, 'y': 2}
見ての通り、続けてはダメっぽい。
dictionaryだけでなく、tuple(タプル)も続けてはダメである。
>>> def test_function(*dic, *dic2): File "<stdin>", line 1 def test_function(*dic, *dic2): ^ SyntaxError: invalid syntax
↓ここはもっと詳しい。ありがとうございますm(_ _ )m
あれ? じゃあ参照渡しとかはどうやるんだろう。。。。
ほう?