2024-05-04 09:17:44 发布
网友
我想知道为什么我在做这样的事情时没有从函数中得到任何输出:
def x(): print 'hi' a = True return a b = False if (x and (b == False)): print 'some string'
是
print 'hi'
实际执行的声明?你知道吗
不,不执行print 'hi'语句。您需要调用函数才能运行:
if (x() and (b == False)):
注意x(),括号调用函数。你知道吗
x()
以上可以更好地表述为:
if x() and not b:
Python函数是一级对象;x只是对函数对象的引用,并不调用它。函数对象与Python中的大多数对象一样,在布尔上下文中被视为True:
x
True
>>> def foo(): return False ... >>> foo() False >>> bool(foo) True
因此,即使您将函数中的a更改为False(所以a = False),您的代码仍然会打印some string。你知道吗
a
False
a = False
some string
不,不执行
print 'hi'
语句。您需要调用函数才能运行:注意
x()
,括号调用函数。你知道吗以上可以更好地表述为:
Python函数是一级对象;
x
只是对函数对象的引用,并不调用它。函数对象与Python中的大多数对象一样,在布尔上下文中被视为True
:因此,即使您将函数中的
a
更改为False
(所以a = False
),您的代码仍然会打印some string
。你知道吗相关问题 更多 >
编程相关推荐