我有一个函数必须有两个参数,比如:
def f(first_arg: int, unused_arg) -> int:
first_arg += 1
return first_arg
我想对我的函数进行类型化,unused_arg的类型应该是什么?根据这个问题,我猜可以使用< code>None。
对于上下文,我使用lax.scan
fromjax
,它需要一个具有两个参数的函数,即使第二个参数未使用。
文档(https://jax.readthedocs.io/en/latest/_autosummary/jax.lax.scan.html)给出的 f
类型为:
Callable[[~Carry, ~X], Tuple[~Carry, ~Y]]
因此,如果我没有更具体的类型,我可能会使用名为X
的TypeVar
来执行此操作:
from typing import TypeVar
X = TypeVar("X")
def f(first_arg: int, _second_arg: X) -> int:
...
使用 Any
可能会有问题,因为它会掩盖类型检查 - 对于您从未使用的变量无关紧要,但是如果您的函数实现发生更改,您可能没有意识到以前未使用的arg没有被类型检查,而如果您使用TypeVar
,如果您做出任何未由该变量上的绑定
备份的假设,则会出现错误。我尽量避免导入任何
,只是为了确保它不会在我没有注意到的情况下悄悄进入任何地方。
请注意,根据doc,您的f
似乎需要返回一个由两个项组成的元组;我不确定这对您的用例是否重要。
指示未使用参数的标准方法(至少是我使用的linter所强制的)是在其前面加下划线,因此我会这样做,而不是将其命名为<code>unused_arg</code>)。
您可以使用< code>Any?
from typing import Any
def f(first_arg: int, unused_arg: Any) -> int:
...
问题内容: 我是Python的新手,我正在尝试制作一个哈希表,该哈希表检查键是否指向表中的值,如果不是,则将其初始化为空数组。我的代码中令人反感的部分是这一行: 我得到错误: 但是在文档(以及各种示例代码)中,我可以看到它确实采用了默认参数: https://docs.python.org/2/library/stdtypes.html#dict.get http://www.tutorialsp
我更新了我的尝试,将一些内容保留为CHAR,但仍然得到一个类似的错误:第1行错误:ORA-02091:事务回滚ORA-02291:违反完整性约束(MMM1339.ITEMNO_PHAR_FK)-未找到父密钥 需求的外键都在不同的供应主键中有值,所以我不确定为什么仍然存在问题。
问题内容: 最新的()利用TypeScript 2.1中添加的功能,即。这是一件好事,因为现在的输入是正确的,因为在更新之前,“不知道”的输入是合并的,而不是替换它。 同样,使用使得功能在允许输入方面非常严格。无法再将未在组件定义中定义的属性添加到中(的第二个泛型)。 但是,也很难定义动态更新处理程序。例如: 该函数将引发以下错误 即使类型是。 我无法找到一个解决方案,比拥有一个单独的其他和功能。
问题内容: 当“解构”一个元组时,我可以用来表示我不感兴趣的元组元素,例如 使用Python 2.x,如何使用函数参数表达相同的含义?我尝试使用下划线: 我还试图完全忽略该论点: 还有另一种方法可以达到相同目的吗? 问题答案: 这是我对未使用的参数的处理:
我试图实现下面的python代码,但出现了以下错误。有人能帮我吗? 我得到的错误: 文件“C:\Users\Lenovo\Anaconda2\envs\example\u env\lib\site packages\keras\layers\convolutional.py”,第388行,在init super(Convolution2D,self)中。初始(**kwargs) 文件“C:\Use
问题内容: 我正在使用Mockito进行单元测试。我想知道,如果可能与在JUnit进行测试发送参数化的输入参数, 如 问题答案: 在JUnit中,参数化测试使用特殊的运行器,以确保多次实例化该测试,因此每种测试方法均被多次调用。Mockito是用于编写特定单元测试的工具,因此没有内置功能可以以不同的Mockito期望多次运行同一测试。 如果要更改测试条件,最好的选择是执行以下一项操作: 使用JUn