def isdark():
dark = True
dark = isdark()
if dark:
print('bt')
else:
print('dasd')
我试图制作它以便打印bt
但是打印dasd
,为什么dark = is dark()
条件不起作用?
答案 0 :(得分:3)
def isdark():
dark = True
在这里,您不是要分配全局变量,而是创建局部变量并为其分配True
。相反,您可以像这样
def isdark():
return True
因为,您要使用此行将返回值分配给dark
变量
dark = isdark()
从isdark
返回的任何内容都将分配给dark
。
除此之外,如果您只是用来检查if
条件,那么您可以像这样重写代码
if isdark():
print('bt')
else:
print('dasd')
答案 1 :(得分:1)
isdark()
是一个没有return
语句的函数,因此默认情况下它返回None。所以dark
永远不会评估为真。
您通过两种不同的方式使用相同的变量让自己感到困惑。以下是我将如何做到这一点:
dark = True
def isdark():
return dark
if isdark():
print('bt')
else:
print('dasd')
或更简单:
isdark = True
if isdark:
print('bt')
else:
print('dasd')
甚至更简单:
isdark = True
print('bt' if isdark else 'dasd')
答案 2 :(得分:0)
你需要回归黑暗,就像这样:
def isdark():
dark = True
return dark
dark = isdark()
if dark:
print('bt')
else:
print('dasd')