gpt4 book ai didi

python - 查找 Python 对象具有哪些方法

转载 作者:IT老高 更新时间:2023-10-28 12:05:26 26 4
gpt4 key购买 nike

给定一个任何类型的 Python 对象,是否有一种简单的方法可以获取该对象具有的所有方法的列表?

或者,

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

最佳答案

对于许多对象,您可以使用此代码,将“object”替换为您感兴趣的对象:

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

我在 diveintopython.net 发现了它(现已存档),应该提供一些进一步的细节!

如果你得到一个 AttributeError,你可以使用它来代替:

getattr() 不能容忍 pandas 风格的 Python 3.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 - 查找 Python 对象具有哪些方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34439/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com