调用异常函数需要变量assignent?

时间:2015-08-23 19:11:10

标签: python function python-2.7 control-flow

非常新的Python,所以请耐心等待......

很好奇通过终端(Mac OSX)在Python解释器中调用以下两个函数之间的区别:

功能#1:

def printthis(x):
    if x == "hello":
        print "hello"
    else:
        print "Goodbye"

x = "hello"
printthis(x)

当我在printthis(x)之后立即输入时,它返回print语句:

hello 

功能#2:

def string_checker(action):
    try:
        check = isinstance(action, basestring)
        if check == True:
            return True
    except ValueError:
        print "We need a string here!"
        return None

然而,使用此功能,只需执行此操作然后按Enter键不会返回任何内容:

action = 987
string_checker(action)

我必须将此函数分配给变量,然后打印该变量以使函数返回一个值,如下所示:

>>>strcheck = string_checker(action)
>>>print strcheck
None

或者像这样:

>>>action = "oiuy"
>>>strcheck = string_checker(action)
>>>print strcheck
True

我在这里缺少什么?为什么有些函数似乎需要分配给变量来调用它们,而其他函数可以简单地通过写出函数名称并将参数传递给它们来调用?

1 个答案:

答案 0 :(得分:2)

我认为令你困惑的问题是python repl有助于显示你输入的表达式的值,除非该值是None,假设你对那些不感兴趣,而{{{ 1}}语句总是呈现你给它的任何东西。这基本上与函数返回或赋值无关,而与print语句有关(或者与简单表达式无关)

print