如何在python中确定函数参数类型?

2024-04-29 02:07:53 发布

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

例如,我有一个记录不好的图书馆。我从中得到了一个对象,我想知道某些方法接受的参数类型是什么。在

在IPython我可以跑

In [28]: tdb.getData?
Signature: tdb.getData(time, point_coords, sinterp=0, tinterp=0, data_set='isotropic1024coarse', getFunction='getVelocity', make_modulo=False)
Docstring: <no docstring>
File:      ~/.local/lib/python3.5/site-packages/pyJHTDB/libJHTDB.py
Type:      method

但它并没有给出论点的类型。我不知道point_coords的确切类型。在


Tags: 对象方法in类型参数图书馆timeipython
1条回答
网友
1楼 · 发布于 2024-04-29 02:07:53

通常,Python中的函数接受任何类型的参数,因此您无法定义它期望的类型。在

不过,函数可能确实对接收到的对象做了一些隐含的假设。在

以这个函数为例:

def is_long(x):
    return len(x) > 1000

此函数接受哪种类型的参数x?任何类型,只要它定义了长度。在

因此,只要实现__len__,它就可以接受字符串、列表、dict或任何您创建的自定义对象。但不需要整数。在

^{pr2}$

要回答以下问题:如何判断函数产生的假设?在

  • 阅读文档
  • 读取doc字符串(tryhelp(funcname)
  • 猜猜:给它传递任何参数,看看它是如何失败的。如果它失败,并出现AttributeError:X实例没有属性“get\u value”,则它需要具有get_value的内容。在

相关问题 更多 >