Need help with "with-statement-compatible" object

Dmitry Teslenko dteslenko at gmail.com
Wed Dec 19 03:02:27 EST 2007


Hello!
I've made some class that can be used with "with statement". It looks this way:

class chdir_to_file( object ):
...
	def __enter__(self):
...

	def __exit__(self, type, val, tb):
...
def get_chdir_to_file(file_path):
	return chdir_to_file(file_path)
...

Snippet with object instantiation looks like this:
	for s in sys.argv[1:]:
		c = chdir_to_file( s )
		with c:
			print 'Current directory is %s' % os.path.realpath( os.curdir )

That works fine. I want to enable it to be used in more elegant way:
for s in ... :
        with get_chdir_to_file( s ) as c:
                   c.do_something()

But python complains c is of NoneType and has no "do_something()". Am
I missing something?



More information about the Python-list mailing list