当前位置: 首页 > 面试题库 >

多变量声明

向俊贤
2023-03-14
问题内容

我在Python中看到了这个声明,但是我不明白它的含义,也找不到解释:

ret, thresh = cv2.threshold(imgray, 127, 255, 0)

问题是:ret和之间为什么会有逗号thresh?那是什么类型的作业?


问题答案:

那是一个 “元组”“解构” 分配-
参见例如多重分配语义。cv2.threshold返回包含两个值的元组,因此等效于:

temp = cv2.threshold(...)
ret = temp[0]
thresh = temp[1]

请参阅语言参考中的赋值语句:

如果目标列表是目标的逗号分隔列表:该对象必须是可迭代的,并且具有与目标列表中存在目标的项目数量相同的项目,并且这些项目从左到右分配给相应的目标。



 类似资料:
  • 问题内容: 在JavaScript中,可以这样声明多个变量: …或像这样: 一种方法比另一种更好/更快吗? 问题答案: 第一种方法更易于维护。每个声明都是一行上的单个语句,因此您可以轻松地添加,删除和重新排列声明。 使用第二种方法时,删除第一个或最后一个声明很烦人,因为它们包含关键字和分号。每次添加新的声明时,都必须将旧行中的分号更改为逗号。

  • let和const是JavaScript里相对较新的变量声明方式。 像我们之前提到过的,let在很多方面与var是相似的,但是可以帮助大家避免在JavaScript里常见一些问题。 const是对let的一个增强,它能阻止对一个变量再次赋值。 因为TypeScript是JavaScript的超集,所以它本身就支持let和const。 下面我们会详细说明这些新的声明方式以及为什么推荐使用它们来代替v

  • 局部变量使用关键字 def 来声明,其只在声明它的地方可见 . 局部变量是 Groovy 语言的一个基本特性. 例子 13.2 . 使用局部变量 def dest = "dest" task copy(type: Copy) { form "source" into dest }

  • Rust 语言可以先声明变量绑定,后面才将它们初始化。但是这种情况用得很少,因为这样很可能导致使用未 初始的变量。 fn main() { // 声明一个变量绑定 let a_binding; { let x = 2; // 初始化一个绑定 a_binding = x * x; } println!("a bi

  • 问题内容: 我不明白这个脚本有什么问题 我希望它在表中插入10个值,但是第二行有错误。 问题答案: MySQL不支持执行存储过程代码的匿名块。 您需要创建一个包含该代码的存储过程,然后调用它。 另外,您在插入语句的末尾缺少分号。我修好了 您可能还想使用concat()而不是+来生成名称,但是我将把更改留给您。 创建过程: 调用过程:

  • 主要内容:类型断言(Type Assertion),类型推断,变量作用域变量是一种使用方便的占位符,用于引用计算机内存地址。 我们可以把变量看做存储数据的容器。 TypeScript 变量的命名规则: 变量名称可以包含数字和字母。 除了下划线 _ 和美元 $ 符号外,不能包含其他特殊字符,包括空格。 变量名不能以数字开头。 变量使用前必须先声明,我们可以使用 var 来声明变量。 我们可以使用以下四种方式来声明变量: 声明变量的类型及初始值: 例如: 声明变量的类型,