Issue calling method outside class python
<p>I'm working on a python assingment involving creating and using a class with several methods. I won't post the whole thing as it'll be simpler to point out my issue if I instead show an example of what I'm trying to do.</p>

<pre><code>class Fruit(self,color,name):
    def __init__(self, color, name):
        self.color = color
        self.name = name

    def return_list(self, index):
        print fruit_list[index]

fruit_list = []

fruit_1 = Fruit("red", "apple")
fruit_list.append(fruit_1.color) 
fruit_list.append(fruit_1.name)
</code></pre>

<p>So the above code works. My issue is getting return_list to work when used outside of the class, as so:</p>

<pre><code>fruit_choice = int(raw_input("What fruit would you like?"))
Fruit.return_list(fruit_choice)
</code></pre>

<p>Basically I'm trying to create a method that when called, outputs the item at an index within a list, the index being specified by user input (i.e fruit_choice = 0, printed item is first element of list.)</p>

<p>I have a basic understanding of classes, but getting a somewhat vague method to work like return_list is a little unintuitive. The error message I get:</p>

<pre><code>Fruit.return_list(fruit_choice)
TypeError: unbound method return_list() must be called with Fruit instance as first argument (got int instance instead)
</code></pre>

<p>I know that if I got the code to work the output would be "red" if input was 0 instead of "red,"apple", but that's an issue for another time.</p>

<p>If someone could point out to me what I'm doing wrong in creating/calling the return_list method, please and thanks.</p>

<p>Basically you are calling an instance method without an instance that's why you are getting this error</p>

<pre><code>    TypeError: unbound method return_list() must be called with Fruit instance as first argument (got int instance instead)
</code></pre>

<p>The corrected code</p>

<pre><code>    fruit_1.return_list(fruit_choice)
</code></pre>

<p>The way you are doing is the behaviour of static methods, they are called without an instance.
Please go through some oops programming like instance methods and static methods in python.</p>

<p>Hope it helps :)</p>

python list python-2.7 class methods