Python获取表示内置函数的字符串的类型返回

2024-04-25 21:54:03 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有一些Python代码的文本

"''.join(something)"

我可能不知道是什么,但是如果对文本进行解析,我们会看到join,它是一个内置的python函数。必须有一种方法知道它返回str。理想情况下,我希望函数

get_type("''.join(something)")  # Returns: 'str', because join make a 'str'

或者其他情况

"['asdfom', whatever].append('ttt')"

无法使用eval()之类的方法获取对象类型,因为键“whatever”未知,但我们知道append返回None,因此解决方案应该知道返回类型为None

下面是另一个更复杂的情况,类型未知,但其方法可能是某个类型

"some_string_variable.split('\n')"

一些\u字符串\u变量可以是任何名称,甚至可能不在同一个文件中定义,但split()是python str类型已知的方法,因此,如果一些get \u type函数尝试猜测返回类型,它将使用它知道的split()并将其与str.split()返回的内容(即列表)匹配。我对这种情况很好,不能100%的准确度,但是上面列出的两种情况应该有工作解决方案

现在,我正在使用pydoc.locate(),它在很多情况下都能很好地工作,甚至对于用户定义的类型也是如此,但是在上面所有的情况下它都不会返回任何结果。有人知道怎么做我要找的东西吗


Tags: 方法函数文本none类型gettype情况