我想知道为什么在做这样的事情时我没有从函数中得到任何输出:
def x():
print 'hi'
a = True
return a
b = False
if (x and (b == False)):
print 'some string'
是个
打印'嗨'
语句实际执行了吗?
我想知道为什么在做这样的事情时我没有从函数中得到任何输出:
def x():
print 'hi'
a = True
return a
b = False
if (x and (b == False)):
print 'some string'
是个
打印'嗨'
语句实际执行了吗?
不,该print 'hi'
语句未执行。您需要调用该函数才能运行:
if (x() and (b == False)):
注意x()
, 括号调用(调用)函数。
上式可以更好地表达为:
if x() and not b:
Python 函数是一流的对象;x
只是对函数对象的引用,不会调用它。与 Python 中的大多数对象一样,函数对象True
在布尔上下文中被考虑:
>>> def foo(): return False
...
>>> foo()
False
>>> bool(foo)
True
因此,即使您已更改a
为False
在您的函数中(so a = False
),您的代码仍然会打印some string
。