我需要返回一个1个对象的元组(我的函数属于一类函数,都应该返回1个以上的对象的元组)。我要返回的对象可能是None
,但是为了保持一致性,仍然需要将其包装在元组中。一种方法是:
return (possibly_none_object,)
但是我总是发现,带有逗号的语法是很尴尬的,所以我想我应该这样做:
return tuple(possible_none_object)
我认为这会做完全相同的事情,并且更加明确。
但是第二行抛出{TypeError} 'NoneType' object is not iterable
。这让我想知道为什么这两个语句是不同的,以及在理解python和元组时可能会缺少哪些难以捉摸的细节。
这可能是一个琐碎的问答,但我很好奇。
答案 0 :(得分:2)
pip install --upgrade tensorflow==1.10
要求x为可迭代类型
例如tuple(x)
不起作用,但是tuple('a', 'b')
起作用
所以tuple(['a', 'b'])
等同于tuple([None])
答案 1 :(得分:2)
即使标准的逗号也不能接受,只会使它更加复杂。
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="dgt 2.css">
</head>
<body>
<h1>My HTML file</h1>
</body>
</html>
接受一个可迭代的对象,并将其转换为元组。因此,您可以通过h1 {
color: green;
}
完成所需的工作。但是不是更尴尬吗?前卫括号和另外创建的列表。
或者您可以通过使用装饰器使它变得更加复杂,该装饰器为您隐藏了挥之不去的逗号:
tuple