我在打印无作为值时遇到问题。
假设这是我的python代码:
bool FindAndUpdate2(BsonDocument target, int x)
{
BsonValue id, children;
while (true)
{
try
{
if (target.TryGetValue("_id", out children))
{
id = target.GetValue(1);
children = target.GetValue(3);
}
else
{
id = target.GetValue(0);
children = target.GetValue(2);
}
if (id.ToInt32() == x)
{
Update(target); //change as you like
return true; //success
}
else
target = children[0] as BsonDocument;
}
catch (Exception ex)
{
return false; //failed
}
}
}
def a(b):
b = None
print b
def c(a):
if a:
return True
else:
return False
我的问题是,当只调用函数a时,我必须“打印”无。
当我将函数a传递给函数c时,我不希望打印出“无”。
如果我输入“return None”,Python shell将不会为函数a显示“None”。这就是为什么我认为如果我想显示“无”,我只能使用“打印”。但是当我将函数a传递给函数c时,“无”也会被打印出来。有没有办法只在不打印第二个函数中的“无”的情况下秘密获取结果?
我希望我的问题有道理。
非常感谢你的帮助。
答案 0 :(得分:0)
通话c(a(1))
将首先执行a(1)
,然后c(a(1))
。由于此处a(1)
未返回 true ,因此c(a(1))
将评估为 False 。
这就是你得到以下的原因:
None
False
尝试将函数调用为c(a)
,这将返回如下:
True
发生这种情况是因为a
没有执行,并且它有一些价值。
希望这有帮助!