My apologies if this is a stupid question but

if we have 

```
x=3+5j

```

then
`x.imag` would give its imaginary part
`x.conjugate()` would give its complex conjugate. Why do we need to put a `()` to call the conjugate function? 

I am thinking whether `x` can be thought to be a struct in C++

`imag` is a public attribute of `x`, where `conjugate` is a member function. Is this way of thinking correct? I apologise if this makes no sense. Admittedly, my knowledge of C++ and Python are both quite limited.