# Julia from the perspective of a pythonista

**URL:** https://discourse.julialang.org/t/julia-from-the-perspective-of-a-pythonista/55956
**Category:** General Usage
**Tags:** feedback
**Created:** [February 24, 2021, 7:45pm UTC](https://discourse.julialang.org/t/julia-from-the-perspective-of-a-pythonista/55956 "2021-02-24T19:45:59Z")
**Posts on this page:** 1
**Showing post:** 54

<div class="post-metadata">

### Author: ![stevengj](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stevengj/32/71_2.png) [@stevengj](https://discourse.julialang.org/u/stevengj)
#### Post date: [February 25, 2021, 2:54pm UTC](https://discourse.julialang.org/t/julia-from-the-perspective-of-a-pythonista/55956/54 "2021-02-25T14:54:04Z")

</div>

> [@Jake](#):
>
> Yesterday I was experimenting with passing an array to a function using the most general Type possible. I finally decided that because arrays are passed by pointer, that they need to be very specific when passed to a function.

Probably you are confused about [invariance](https://docs.julialang.org/en/v1/manual/types/#Parametric-Composite-Types), e.g. you should have declared a parameter as `AbstractVector{<:Real}` but you declared it as `AbstractVector{Real}` instead — the former allows `Vector{Float64}` and the latter does not. This comes up a lot in the forums, e.g. [here](https://discourse.julialang.org/t/why-1-2-3-is-not-a-vector-number/52645) and [here](https://discourse.julialang.org/t/reason-behind-designing-parametric-types-as-invariant/18971) and [here](https://discourse.julialang.org/t/if-parametric-types-are-invariant-why-is-vector-int-a-subtype-of-abstractvector-int/53394) and [here](https://discourse.julialang.org/t/problem-with-complex-rationals/9474) etcetera.

---

_[View the full topic](https://discourse.julialang.org/t/julia-from-the-perspective-of-a-pythonista/55956)._
