修复函数参数数据类型为dataframe python



假设我有一个函数

def func(data:str):  
pass

我想做的是确保它接受数据帧以及字符串。我该怎么做呢?我的意思是,如果传递了一个字符串,它应该接受,如果传递了数据帧,它也接受。

import typing
import pandas as pd
def func(data:typing.Union[str, pd.DataFrame]):  
pass

或者,如果您使用python 3.10或更新版本:

def func(data:str | pd.DataFrame):  
print(type(data))

获取更多信息和将来的读者:

这是type-hinting,并且不做任何关于接受或拒绝任何type的事情,即使您只指定一个type。为了更加严格,并且该函数不能接受任何其他type,您必须使用raise:

def func(data):  
if type(data) not in [str, pd.DataFrame]:
raise RuntimeError("This is not good")

甚至允许您使用strings作为类型提示,例如:

def func(data: "str"):  
print(data)

并且,正如您在第一个示例中看到的,您可以使用任何class进行类型提示,这是一个很好的实践。

相关内容

  • 没有找到相关文章

最新更新