Python打印无

时间:2016-11-04 05:14:00

标签: python printing return

我在打印无作为值时遇到问题。

假设这是我的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时,“无”也会被打印出来。有没有办法只在不打印第二个函数中的“无”的情况下秘密获取结果?

我希望我的问题有道理。

非常感谢你的帮助。

1 个答案:

答案 0 :(得分:0)

通话c(a(1))将首先执行a(1),然后c(a(1))。由于此处a(1)未返回 true ,因此c(a(1))将评估为 False

这就是你得到以下的原因:

None
False

尝试将函数调用为c(a),这将返回如下:

True

发生这种情况是因为a没有执行,并且它有一些价值。

希望这有帮助!