0
|
Chris B. Behrens · 技术社区 · 5 年前 |
1
6
如果您的意思是,根据调用方期望的返回类型,函数的行为是否会有所不同,那么答案是“否”(除了严重讨厌的字节码检查)。在这种情况下,应该在对象上提供两个不同的迭代器,并编写如下内容:
参见字典对象,它使用这个模式。
[编辑] 为了防止有人想知道我所说的“严重讨厌的字节码检查”是什么意思,下面是一个快速的实现:
有用的,比如:
免责声明: 这是一个令人难以置信的黑客行为,非常糟糕的做法,以及 将 如果其他程序员在真正的代码中看到它,他们会追捕你并杀死你。只对cpython有效(如果那样的话)。 从未 在生产代码中使用此代码(或者就此而言,可能是任何代码)。 |
2
4
你试过了吗?它起作用了。
实际上,没有所谓的“返回签名”。所有函数都返回一个对象。看起来您返回了不止一个,但实际上您将它们包装到一个容器元组对象中。 |
3
2
是的,这是可行的:
结果:
我想后面的事情是要小心,当你将使用返回的值… |
4
2
这并不能真正回答你的问题。真正的答案是,赋值的左侧不会影响函数的返回类型,也不能用于区分具有不同返回类型的函数。如其他答案所述,函数可以从不同的返回语句返回不同的类型,但它不知道等号的另一侧是什么。 对于这个函数,它返回一个元组。如果将它赋给x,x就具有元组的值。(y,z)在任务的左侧是“tuple解包”。func()返回的元组被解包到y和z中。 |
5
2
更新: 对于这个示例用例,我将编写不同的生成器来处理这些用例:
或 您可以返回一个元组:
|
6
1
是的,两者都可以。在第一个例子中,val1和val2有两个值。在第二个例子中,val有一个元组。您可以在python解释器中尝试:
|
7
1
只有当你很高兴
|
8
0
这要求有重大的混乱。相反,你可以跟着
如果这不适合您的函数,您应该将其重构为两个或多个函数,因为它显然试图实现两个或多个不同的目标。 |
July · 如何定义数字间隔,然后四舍五入 1 年前 |
user026 · 如何根据特定窗口的平均值(行数)创建新列? 1 年前 |
Ashok Shrestha · 需要追踪特定的颜色线并获取坐标 1 年前 |
Nicote Ool · 在FastApi和Vue3中获得422 1 年前 |
Abdulaziz · 如何对集合内的列表进行排序[重复] 1 年前 |
asmgx · 为什么合并数据帧不能按照python中的预期方式工作 1 年前 |