TypeError: B2() takes exactly 1 argument (0 given)...Why does it matter if the function is called exactly as named or with a variable
<p>Having a bit of trouble wrapping my head around this one. I'm sure the answer is simple but its been driving me batty.</p>

<p>In the following code:</p>

<pre><code>class f1():
    valnum=1

    def A1(self):
        self.valnum=5
        print self.valnum

    def B2(self):
        self.valnum=10
        print self.valnum


    funlist=[A1,B2]


x=f1
x()

x().A1()
x().funlist[1]()
</code></pre>

<p><code>A1()</code> will execute as expected but not <code>B2()</code>. Ultimately, I want to have the code call a random function from the list, but the <code>TypeError: B2() takes exactly 1 argument (0 given)</code> keeps getting in my way. Why is this and what's the best solution.</p>

<p>Thanks.</p>
