Python:控制结构中的函数

2024-05-04 09:17:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道为什么我在做这样的事情时没有从函数中得到任何输出:

def x():
  print 'hi'
  a = True
  return a

b = False

if (x and (b == False)):
  print 'some string'

print 'hi'

实际执行的声明?你知道吗


Tags: and函数falsetrue声明stringreturnif
1条回答
网友
1楼 · 发布于 2024-05-04 09:17:44

不,不执行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(所以a = False),您的代码仍然会打印some string。你知道吗

相关问题 更多 >