给定任何类型的Python对象,有没有一种简单的方法可以获得该对象拥有的所有方法的列表?

或,

如果这是不可能的,除了简单地判断调用方法时是否发生错误之外,是否至少有一种简单的方法来判断它是否有特定的方法?

推荐答案

For many objects,您可以使用以下代码,将"对象"替换为您感兴趣的对象:

object_methods = [method_name for method_name in dir(object)
                  if callable(getattr(object, method_name))]

我在diveintopython.net岁时发现了它(现已存档).希望这能提供更多细节!

If you get an 100, you can use this instead:

getattr(是不能容忍Pandas 式Python 的.6抽象虚拟子类.此代码执行与上面相同的操作,并忽略异常.

import pandas as pd
df = pd.DataFrame([[10, 20, 30], [100, 200, 300]],
                  columns=['foo', 'bar', 'baz'])
def get_methods(object, spacing=20):
  methodList = []
  for method_name in dir(object):
    try:
        if callable(getattr(object, method_name)):
            methodList.append(str(method_name))
    except Exception:
        methodList.append(str(method_name))
  processFunc = (lambda s: ' '.join(s.split())) or (lambda s: s)
  for method in methodList:
    try:
        print(str(method.ljust(spacing)) + ' ' +
              processFunc(str(getattr(object, method).__doc__)[0:90]))
    except Exception:
        print(method.ljust(spacing) + ' ' + ' getattr() failed')

get_methods(df['foo'])

Python相关问答推荐

配置Sweetviz以分析对象类型列,而无需转换

Pystata:从Python并行运行stata实例

由于NEP 50,向uint 8添加-256的代码是否会在numpy 2中失败?

如何根据参数推断对象的返回类型?

导入...从...混乱

转换为浮点,pandas字符串列,混合千和十进制分隔符

可以bcrypts AES—256 GCM加密损坏ZIP文件吗?

处理具有多个独立头的CSV文件

如何防止Pandas将索引标为周期?

不允许 Select 北极滚动?

查看pandas字符列是否在字符串列中

没有内置pip模块的Python3.11--S在做什么?

python的文件. truncate()意外地没有截断'

如何在信号的FFT中获得正确的频率幅值

为罕见情况下的回退None值键入

PYTHON中的selenium不会打开 chromium URL

将像素信息写入文件并读取该文件

时间戳上的SOAP头签名无效

多个布尔条件的`jax.lax.cond`等效项

如何在networkx图中提取和绘制直接邻居(以及邻居的邻居)?