我有一段简单的代码,试图file
在 Python 中提供便利。
class File:
def __init__(this, *args):
this._file = file(*args)
def __del__(this):
this._file.close()
def createCallForwarder(method):
return lambda obj,*args: method(obj._file, *args)
_dict = file.__dict__
for (k,v) in zip(_dict.keys(), _dict.values()):
if not (k.startswith('__') and k.endswith('__')):
if v.__class__.__name__ == 'method_descriptor':
File.__dict__[k] = createCallForwarder(v)
# get the repr method
File.__repr__ = createCallForwarder(dict_proxy['__repr__'])
如果我更改File
为继承自object
,它不会让我分配方法。
为什么不一样?