Solution: Re: Lazy Python usage (hack request)
Pearu Peterson
pearu at cens.ioc.ee
Sat Dec 30 19:56:00 EST 2000
More information about the Python-list mailing list
Sat Dec 30 19:56:00 EST 2000
- Previous message (by thread): msxml3 and IStream interface
- Next message (by thread): createfilehandler on Win32
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Hi again, I have implemented a Python C/API module `lazy' that you can use to put a Python dictionary to a "lazy" mode. You can find the lazy module in http://cens.ioc.ee/~pearu/misc/lazy-0.1.tar.gz Here is a Python session showing lazy in action: >>> import lazy >>> d = {'a':4} >>> lazy.set(d,lambda k:3) # set d to lazy mode >>> print d {'_lazy_cb': <function <lambda> at 0x8112e24>, 'a': 4} >>> d['b'] 3 >>> print d {'_lazy_cb': <function <lambda> at 0x8112e24>, 'b': 3, 'a': 4} >>> del d['_lazy_cb'] # disable lazy mode >>> d['c'] Traceback (most recent call last): File "<stdin>", line 1, in ? KeyError: c And another example: >>> import lazy >>> def fun(k): ... print 'Creating variable %s'%(`k`) ... return k ... >>> lazy.set(locals(),fun) >>> print a+b+c Creating variable 'a' Creating variable 'b' Creating variable 'c' abc >>> print lazy.set.__doc__ lazy.set(dict,func) - set dictionary dict to a "lazy" mode with a callback function func. "lazy" mode means that the following statement dict[<name>] = func(<name>) is executed whenever dict has no key <name>. WARNING: if dict is set to "lazy" mode, dict.has_key(<name>) returns always 1 and dict[<name>] is set to func(<name>). To disable the "lazy" mode for dict, do del dict['_lazy_cb'] Be lazy and have fun!-) Pearu
- Previous message (by thread): msxml3 and IStream interface
- Next message (by thread): createfilehandler on Win32
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list