gpt4 book ai didi

python - 如何在 python 中编写带有可选输出参数的函数

转载 作者:行者123 更新时间:2023-12-05 08:09:22 24 4
gpt4 key购买 nike

如何编写带有可选输出参数的函数。例如

1) mat = ReadBinFile(文件名)或者
2) [mat,titles] = ReadBinFile(文件名)

如果我用

完成了“ReadBinFile”函数
return mat,titles

在第一个例子中,我在“mat”中有一个元组

谢谢你的帮助

最佳答案

如果不向函数指明需要哪种返回类型,或者不屏蔽函数名称(请参阅我的评论),则无法执行此操作。

让我来证明原因。

在 Perl 中,我们可以通过测试调用的上下文 来做到这一点。第一个(单个返回值)是标量上下文,第二个是列表上下文。我们可以使用名为 wantarray 的函数进行测试(Google“python wantarray”——其他搜索引擎可用)。由于这个原因和许多其他原因,Perl 即使不是独一无二的,也是不寻常的。

Python 不是那样工作的,尽管与其他语言相比,内省(introspection)可以走极端。赋值的形式是:

 name = object

其中 name 是无类型引用。所以:

 mat = ReadBinFile(filename)

即使我们通过某种偷偷摸摸的方式检查了字节码,我们也无法知道 mat 应该引用什么类的对象。一个列表,一个元组,一个int,一个bird,一个plane

您显示的语法:

[mat,titles] = ReadBinFile(filename)

是一个谜题。虽然有效,但它与以下方面没有实际区别:

mat,titles = ReadBinFile(filename) 

这当然是一个元组。那么,我们如何判断:

mat = ReadBinFile(filename)

应该是一个元组,一个列表,或者mat应该引用的任何对象类。

毕竟,在我看来,返回不同类的对象是一种可疑的做法,即使在 Perl 中也是如此。有一些异常(exception),例如在某些情况下返回 None。为什么半信半疑?因为代码变得难以阅读、修改和支持。

关于python - 如何在 python 中编写带有可选输出参数的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38691069/

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