Question: ```
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
import numpy as np

my_image = mpimg.imread('mountain.png')
print('The image is:- ',type(image), 
         'dimensions is:-', image.shape)

print(image[:,:,0])
print(image[:,:,1])
print(image[:,:,2])

```

I am unable to understand what `image[:,:,0]` or `image[:,:,1]` mean ?

Answer: 
In kotlin you don't have to write a setter method in order to do this, that's probably why you don't get the suggestion.

In your example, if you wanted to have an `authPresenter` field with getters and setters, you'd declare it as a `var` and kotlin provides the rest:

```
class AuthenticationView(...) {
    var authPresenter: AuthPresenter? = null
}

```

This gives us a nullable `AuthPresenter`. And the idiomatic way to call this:

```
val view = AuthenticationView(...)
view.authPresenter = AuthPresenter(...)

```

Under the covers, that call to `.authPresenter = someObject` is turned into `setAuthPresenter(someObject)`.

If you were to call this from Java, you'd see the `getAuthPresenter()` and `setAuthPresenter()` automatically generated for you.

In short: the reason the reason the option isn't there for Kotlin, is because there is a more idiomatic way to do this.
According to the [Todd](https://stackoverflow.com/a/48138239/1856562) answer, It's not required to write setter/getter methods like java. 

If we want to declare our setter/getter, We have to declare a `var` and write get() and set(value) like this:

```
class AuthenticationView(...) {
    var authPresenter: AuthPresenter? = null
        get() = field
        set(value) {  
           field = value
           ....
        }

```

> 
> I think it's a property field that I have seen something like this in
>  C#
> 
> 
> 

Then if you wanna to set or get authPresenet just do this:

```
//set
authenticationView.authPresenter = object

//get
object = authenticationView.authPresenter

```

We can see codes like this in kotlin like setting `TextView`'s text or `View`'s background