- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何编写带有可选输出参数的函数。例如
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/
我是一名优秀的程序员,十分优秀!