给定一个任何类型的Python对象,是否有一种简单的方法来获得该对象拥有的所有方法的列表?
或者如果这是不可能的,是否至少有一种简单的方法来检查它是否具有特定的方法,而不是在调用方法时检查是否发生错误?
给定一个任何类型的Python对象,是否有一种简单的方法来获得该对象拥有的所有方法的列表?
或者如果这是不可能的,是否至少有一种简单的方法来检查它是否具有特定的方法,而不是在调用方法时检查是否发生错误?
当前回答
获取任何对象的方法列表的最简单方法是使用help()命令。
help(object)
它将列出与该对象相关的所有可用/重要方法。
例如:
help(str)
其他回答
没有可靠的方法可以列出所有对象的方法。Dir (object)通常是有用的,但在某些情况下,它可能不会列出所有的方法。根据dir()文档:“使用参数,尝试返回该对象的有效属性列表。”
检查方法是否存在可以通过callable(getattr(object, method))来完成,就像前面提到的那样。
你可以使用Python中预定义的dir()。
import module_name
dir(module_name)
你也可以把一个对象传递给dir() as
dir(object_name)
如果对象是预定义类(如int、str等)的对象,则会显示其中的方法(您可能知道这些方法是内建函数)。如果该对象是为用户定义的类创建的,它将显示该类中给出的所有方法。
检查它是否有特定的方法:
hasattr(object,"method")
在更直接的答案之上,如果我没有提到IPython,那就是我的疏忽。
按Tab键查看可用的方法,自动补全。
一旦你找到了一个方法,试试:
help(object.method)
查看pydocs、方法签名等。
啊…REPL。
例如,如果你正在使用shell plus,你可以用这个代替:
>> MyObject??
这样,带'??’就在你的对象后面,它会显示类的所有属性/方法。