前記事の補足です。参考までに。

関数名の()なしだと、関数ポインタとなる

def hoge(x, y, z):
print x, y, z

if __name__ == "__main__":
hoge("foo", 'hoge', 'var')
print hoge
x = hoge
x("a", "b", "c")
x("foo", 'hoge', 'var')

はまってしまったので、今後の為にメモを残しておきます。
以前にも1回同じ内容ではまった記憶あり、、、。

以下のソースだと、remove()で
WindowsError: [Error 32] The process cannot access the file because it is being used by another process
が発生します。

原因は、fr.close で()が記述してないから。
pythonでは関数を()なしで記述しても、問題ない。おそらく関数ポインタとして使えるのだろう。

import os
import time
#tardir = "E:\\workspace\\python\\testfolder\\__init__ - Copy.py"
tardir = r"E:\workspace\python\testfolder\__init__ - Copy.py"
print tardir
#"""
fr = open(tardir, "r")
#fr.close()
fr.close
#"""
#time.sleep(1)
print fr.closed;
#try:
os.remove(tardir);
#except:
# print "catnot remove!!"
#else:
# print "It was removed!"


print "bye"