当另一个函数的布尔值设置为“True”时,我试图做一些事情。我尝试使用return(variable),但当涉及到请求布尔值的函数时,它总是说False。在问这个问题之前,我看了一下这里,因为我觉得这似乎是非常基本的东西。但我找不到任何有用的东西。我希望有人能帮我做这件事。这是我的代码。
x = 0
bool = False
def functionA(x,bool):
if x is 0:
bool = True
def functionB(bool):
print bool
if bool is True:
print "Halleluhja"
functionA(x,bool)
functionB(bool)
print x, bool
首先,不要使用名为< code>bool的变量。它是Python保留的,如< code>str,list,int等。
其次,bool
处于全局范围内,因此,如果要在函数中对其进行编辑,则必须将其定义为全局
。
x = 0
bool1 = False
def functionA(x,bool):
global bool1 #now we have access to bool1 variable which is in global scope
if x is 0:
bool1 = True
def functionB(bool):
print (bool1)
if bool is True:
print ("Halleluhja")
functionA(x,bool1)
functionB(bool1)
print (x, bool1)
输出
>>>
True
Halleluhja
0 True
>>>
https://docs.python.org/3.4/tutorial/controlflow.html#defining-functions:
更准确地说,函数中的所有变量赋值都将值存储在局部符号表中;而变量引用首先在局部符号表中查找,然后在封闭函数的局部符号表中查找,然后在全局符号表中查找,最后在内置名称表中查找。因此,全局变量不能在函数中直接赋值(除非在全局语句中命名),尽管它们可以被引用。
您对functionA中的
bool
的赋值会在
>中创建一个局部变量;它不赋值给全局变量
bool
。
坚持你编写代码的方式,你有两个选择。选项 1 是使用全局变量,确保在要修改全局
声明的函数中包含全局声明:
x = 0
bool = False
def functionA(x):
global bool
if x is 0:
bool = True
def functionB():
print bool
if bool is True:
print "Halleluhja"
functionA(x)
functionB()
print x, bool
选项2(首选)是实际退回东西,以便它们可以传递到其他地方:
x = 0
def functionA(x):
if x is 0:
return True
else:
return False
def functionB(bool):
print bool
if bool is True:
print "Halleluhja"
bool = functionA(x)
functionB(bool)
print x, bool
除此之外,不要使用名称< code>bool,使用< code>x == 0而不是< code>x是0,< code>functionA可以写成< code>return x == 0,使用< code>if bool:而不是< code > if bool True:,使用< code > snake _ case (< code > function _ a )而不是< code >
除了相等检查,Jasmine还提供了一些方法来检查布尔条件。 以下是帮助我们检查布尔条件的方法。 toBeTruthy() 此布尔匹配器在Jasmine中用于检查结果是等于true还是false。 以下示例将帮助我们理解toBeTruthy()函数的工作原理。 ExpectSpec.js describe("Different Methods of Expect Block",function (
当我想检查可选布尔值是否为真时,这样做行不通: 它会导致以下错误: 可选类型“@IvalueBool?”不能用作布尔值;测试'!=而不是零 我不想检查nil;我想检查返回的值是否为真。 如果布尔值==true,我是否总是必须执行
我正在制作一个函数来返回布尔值,以了解元素是否存在,但我得到 我怎么才能得到唯一的真实或虚假响应,请帮助,我使用了if条件,但它显示了该响应…… 这是我调用的函数
问题内容: 我有一个mongo文档,其中包含一个日期字段,该日期字段也可以为false(或未定义),并且似乎无法找到如何检查该字段是否可用或为false或是否为日期(time.Time)的日期golang / mgo:S 问题答案: 如果您有一个字段,并且想知道它是否正确地设置了有效日期,则可以查询其方法。否则,如果您要在数据库中查询此类文档,则可以执行以下操作之一。 查询该字段是否为假: 使用$
我在Java 8上工作,有一个简单的问题我还没有解决。 我有3个方法来验证来自数据库的数据,并根据它们是否得到一行来返回真或假。棘手的是,即使我知道第一部分返回false,我仍然希望它检查其他两个方法。我已经编写了这样的代码: 问题是,当validateMETOD1()返回false时,它没有调用validateMETOD2()。有人能解释一下为什么吗?我试过了: 仍然面临同样的问题。
我正在从事一项与react基于本机应用程序的用户管理相关的任务。在他们成功注册为用户后,我添加了一个存储布尔值的数据,并将其命名为emailVerifiedAccount(如果他们成功注册,这是存储的数据,如果他们单击发送给他们的电子邮件验证链接,则表明他们是否为验证用户)。在登录屏幕中,我想检查我在onAuthStateChanged中从firestore获得的布尔值,并且仅当我获得的email