# Passing multiple arguments to a function

**URL:** <https://discourse.julialang.org/t/passing-multiple-arguments-to-a-function/40503>\
**Category:** General Usage\
**Tags:** question\
**Created:** [May 31, 2020, 10:26am UTC](https://discourse.julialang.org/t/passing-multiple-arguments-to-a-function/40503 "2020-05-31T10:26:11Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![POKIN\_CHAN](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pokin_chan/32/9309_2.png) [@POKIN\_CHAN](https://discourse.julialang.org/u/POKIN_CHAN)\
**Post date:** [May 31, 2020, 10:26am UTC](https://discourse.julialang.org/t/passing-multiple-arguments-to-a-function/40503/1 "2020-05-31T10:26:11Z")

</div>

In python,

```julia
args ={"a":2 ,"c":1,"e":9}

def test(a,c,e):
   print(a,c,e)

test(**args)

```

My I know the similar way of passing arguments in Julia? Thanks

---

<div class="post-metadata">

**Author:** ![virtualgraham](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/virtualgraham/32/15200_2.png) [@virtualgraham](https://discourse.julialang.org/u/virtualgraham)\
**Post date:** [May 31, 2020, 10:32am UTC](https://discourse.julialang.org/t/passing-multiple-arguments-to-a-function/40503/2 "2020-05-31T10:32:16Z")

</div>

Here is one way:

```julia
test(a,c,e) = println("$a $c $e")

args = (2,1,9)

test(args...)

```

aslo

```julia
test(;a=0,c=0,e=0) = println("$a $c $e")

args = Dict(:a=>2, :c=>1, :e=>9)

test(;args...)

```

---

<div class="post-metadata">

**Author:** ![GunnarFarneback](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/gunnarfarneback/32/1827_2.png) [@GunnarFarneback](https://discourse.julialang.org/u/GunnarFarneback)\
**Post date:** [May 31, 2020, 10:33am UTC](https://discourse.julialang.org/t/passing-multiple-arguments-to-a-function/40503/3 "2020-05-31T10:33:30Z")

</div>

```julia
julia> args = (a=2, c=1, e=9)
(a = 2, c = 1, e = 9)

julia> test(;a, c, e) = println("$a $c $e")
test (generic function with 1 method)

julia> test(;args...)
2 1 9

```

---

<div class="post-metadata">

**Author:** ![GunnarFarneback](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/gunnarfarneback/32/1827_2.png) [@GunnarFarneback](https://discourse.julialang.org/u/GunnarFarneback)\
**Post date:** [May 31, 2020, 10:34am UTC](https://discourse.julialang.org/t/passing-multiple-arguments-to-a-function/40503/4 "2020-05-31T10:34:51Z")

</div>

> [@virtualgraham](#):
>
> ```julia
> args = (2,1,9)
> 
> test(args...)
> 
> ```

That rather corresponds to `test(*args)` in Python.

---

<div class="post-metadata">

**Author:** ![virtualgraham](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/virtualgraham/32/15200_2.png) [@virtualgraham](https://discourse.julialang.org/u/virtualgraham)\
**Post date:** [May 31, 2020, 10:40am UTC](https://discourse.julialang.org/t/passing-multiple-arguments-to-a-function/40503/5 "2020-05-31T10:40:44Z")

</div>

This may lead to unexpected results:

```julia

julia> test(a, c, e) = println("$a $c $e")
test (generic function with 1 method)

julia> args1 = (a=2, c=1, e=9)
(a = 2, c = 1, e = 9)

julia> test(args1...)
2 1 9

julia> args2 = (a=2, e=9, c=1)
(a = 2, e = 9, c = 1)

julia> test(args2...)
2 9 1

```

Edit: @GunnarFarneback is correct. This inconsistency is only because I did not use `;` specifying keyword arguments.

---

<div class="post-metadata">

**Author:** ![GunnarFarneback](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/gunnarfarneback/32/1827_2.png) [@GunnarFarneback](https://discourse.julialang.org/u/GunnarFarneback)\
**Post date:** [May 31, 2020, 10:41am UTC](https://discourse.julialang.org/t/passing-multiple-arguments-to-a-function/40503/6 "2020-05-31T10:41:34Z")

</div>

Yeah, was way too quick. I’ve edited out that misinformation.
