Home > database >  Class variables not callable?
Class variables not callable?

Time:07-16

I've stumbled on what is probably a simple issue but I struggle to think of a solution. If I try to make a class variable that equates to a number or an array index they come up with these errors

'int' object is not callable

and

'numpy.ndarray' object is not callable

class Do_something:
   def __init__(self,number = 0):
      self.number = number
      self.result = 1   self.number

something = Do_something()
print(something.result(1))

import numpy as np

class Do_something_else:

   def __init__(sel):
      self.arr = np.zeros([5,5])
      self.index = self.arr[0]

something = Do_something_else()
print(something.index())

This seems odd since I can set variables equal to ints and arrays elsewhere. What am I missing and what is the solution?

CodePudding user response:

In both piece of code result and index are not methods, they are instance valiables. To make this code work it should look like this:

class Do_something:
   def __init__(self,number = 0):
      self.number = number
      self.result = 1   self.number

something = Do_something(1)
print(something.result)

and

class Do_something_else:

   def __init__(self):
      self.arr = np.zeros([5,5])
      self.index = self.arr[0]

something = Do_something_else()
print(something.index)

Also pay attention that there ia s misspelling in def __init__(sel): line in class Do_something_else class. It should be def __init__(self):

  • Related