说我有一些Python代码的文本,
"''.join(something)"
我可能不知道有什么东西,但如果解析了文本,我们就会看到join,这是一个内置的python函数。必须有一种方法可以知道它返回一个str。理想情况下,我只想做一个功能
get_type("''.join(something)") # Returns: 'str', because join make a 'str'
或其他情况,
"['asdfom', whatever].append('ttt')"
类似eval()之类的东西无法使用对象类型,因为密钥'无论什么'是未知的,但我们知道append返回None,因此解决方案应该知道返回类型为None
这是另一个更复杂的情况,其中类型未知,但其方法可能是*(*在合理的猜测范围内)为某种类型
"some_string_variable.split('\n')"
someptring_variable可以是任何名称,甚至可能不在同一个文件中定义,但split()是python str类型已知的方法,因此,如果某些get_type函数试图猜测返回类型,那么使用它所知道的,split()并将其与str.split()返回的内容匹配,这是一个列表。我对这种情况很好,没有100%的准确率,但我上面列出的两种情况应该有可行的解决方案。
现在,我正在使用pydoc.locate(),它在很多情况下运行良好,即使对于用户定义的类型,但在上述所有情况下都返回None。有谁知道如何制作我正在寻找的东西?