So, I have a class, where a class variable is set to the output from a class factory in the __init__ method, like so:
def MyFooFactory():
def __init__(self, *args):
# Do __init__ stuff
def MyBar(myFoo_obj):
print "MyBar"
newclass = type("MyFoo", tuple(object), {"__init__": __init__, "MyBar": MyBar} )
return newclass
class Foo:
Bar = 0
def __init__(self):
if (type(Foo.Bar) is int):
Bar = MyFooFactory()
def MyBar(a_list):
for l in a_list:
Bar.MyBar(l)
However, when I try this
myBar_list = [Foo.Bar() for _ in range(x)]
Foo.MyBar(myBar_list)
TypeError: unbound method MyBar() must be called with Foo instance as first argument (got list instead)
Is this happening because MyBar has the same name in both Foo and MyFoo or is there something else afoot here?
For reference, both MyBar methods are supposed to be unbound.
Thanks,