2024-09-28 20:46:05 发布
网友
您可能希望docstring不影响hash,例如在joblib内存中
是否有一种剥离文档串的好方法?inspect.getsource和inspect.getdoc有点互相争斗:docstring在一个文件中被“清理”
一种方法是使用regex从源中删除docstring:
nodoc = re.sub(":\s'''.*?'''", "", source) nodoc = re.sub(':\s""".*?"""', "", nodoc)
目前只适用于函数和类,也许有人也能找到模块的模式
如果只想散列函数体,而不考虑docstring,则可以使用function.__code__属性
function.__code__
它允许访问不受docstring影响的code对象
code
不幸的是,使用此选项,您将无法获得源代码的可读版本
def foo(): """Prints 'foo'""" print('foo') print(foo.__doc__) # Prints 'foo' print(foo.__code__.co_code) # b't\x00d\x01\x83\x01\x01\x00d\x02S\x00' foo.__doc__ += 'pouet' print(foo.__doc__) # Prints 'foo'pouet print(foo.__code__.co_code) # b't\x00d\x01\x83\x01\x01\x00d\x02S\x00'
一种方法是使用regex从源中删除docstring:
目前只适用于函数和类,也许有人也能找到模块的模式
如果只想散列函数体,而不考虑docstring,则可以使用
function.__code__
属性它允许访问不受docstring影响的
code
对象不幸的是,使用此选项,您将无法获得源代码的可读版本
相关问题 更多 >
编程相关推荐