Question: If I have a Python class, and would like to call a function from it depending on a variable, how would I do so? I imagined following could do it:

```
class CallMe: # Class

   def App(): # Method one

      ...

   def Foo(): # Method two

      ...

variable = "App" # Method to call

CallMe.variable() # Calling App()

```

But it couldn't. Any other way to do this?

Answer: 
You can use getattr, or you can assign bound or unbound methods to the variable. Bound methods are tied to a particular instance of the class, and unbound methods are tied to the class, so you have to pass an instance in as the first parameter.

e.g.

```
class CallMe:
    def App(self):
        print "this is App"

    def Foo(self):
        print "I'm Foo"

obj = CallMe()

# bound method:
var = obj.App
var()         # prints "this is App"

# unbound method:
var = CallMe.Foo
var(obj)      # prints "I'm Foo"

```
Your class has been declared as an "old-style class". I recommend you make all your classes be "new-style classes".

The difference between the old and the new is that new-style classes can use inheritance, which you might not need right away. But it's a good habit to get into.

Here is all you have to do to make a new-style class: you use the Python syntax to say that it inherits from "object". You do that by putting parentheses after the class name and putting the name *object* inside the parentheses. Like so:

```
class CallMe(object): # Class

   def App(): # Method one

      ...

   def Foo(): # Method two

      ...

```

As I said, you might not need to use inheritance right away, but this is a good habit to get into. There are several questions here on StackOverflow to the effect of "I'm trying to do *X* and it doesn't work" and it turns out the person had coded an old-style class.