Frustrated with scopes
Dave Angel
davea at ieee.org
Wed Aug 12 08:52:50 EDT 2009
andrew cooke wrote:
> Is there a way to make this work (currently scope and join are
> undefined at runtime when the inner class attributes are defined):
>
> class _StreamFactory(object):
>
> @staticmethod
> def __call__(lines, source, join=''.join):
>
> class Line(object):
>
> __source = source
> __join = join
> [...]
>
> I can get something working by bouncing through global values, but it
> looks awful and I think it's a source of a bug due too values being
> redefined.
>
> Thanks,
> Andrew
>
>
Supply us with just enough source code to actually try it, give the full
error message including traceback, and tell us what you expected to
see. Also tell us Python version (sys.version)
So far you've done none of these. When I try the following, I get no
errors, using Python 2.6.2
class _StreamFactory(object):
@staticmethod
def __call__(lines, source, join=''.join):
class Line(object):
__source = source
__join = join
return Line()
fact = _StreamFactory()
obj = fact(43, "name.txt")
print obj
More information about the Python-list
mailing list