Python 赋值前引用的第10行的封闭范围中定义的局部变量“count”
我对Python3的以下代码有一个问题,该代码位于底部count=count+1的第5位: 导入base64 导入json 从google.cloud导入物联网v1 导入操作系统 从twilio.rest导入客户端 account_sid=os.environ['TWILIO_account_sid'] auth_token=os.environ['TWILIO_auth_token'] 客户端=客户端帐户\u sid,身份验证\u令牌 计数=0 def设备配置: 客户端=物联网v1.DeviceManager客户端 名称=client.device\u路径, , , 二进制数据=字节配置,“utf-8” client.modify_cloud_to_device_configname,二进制数据 def hello_pubsubevent,上下文: 如果事件中有“数据”: 数据=事件['data'] 数据=base64.b64解码数据 数据=数据。解码“utf-8” data=json.loadsdata 温度=浮动数据[“温度”] 如果温度>25.0: 设备\u配置在 如果计数小于1: client.calls.create\ url=, to=os.environ['TWILIO_to'], from=os.environ['TWILIO\u from'] 计数=计数+1 其他: 设备配置关闭 其他: 打印数据不存在! 这个函数将被不断调用,就像无限循环调用这个函数一样。当第一次温度超过25时,我想将count更新为1,对于以后的调用,它可能会达到多高,LED应该亮起,但不应该进行调用您在函数内部引用count,而它是在函数外部定义的。您应该将count作为参数传递。在hello\u pubsubevent中,在count=count+1行中指定给count的上下文。这使得python在未定义计数的函数范围内查找计数,因此在右侧[count+1]的查找失败 这可能是一个令人担忧的解读: 您需要告诉python您指的是全局计数: 可能会是:Python 赋值前引用的第10行的封闭范围中定义的局部变量“count”,python,python-3.x,Python,Python 3.x,我对Python3的以下代码有一个问题,该代码位于底部count=count+1的第5位: 导入base64 导入json 从google.cloud导入物联网v1 导入操作系统 从twilio.rest导入客户端 account_sid=os.environ['TWILIO_account_sid'] auth_token=os.environ['TWILIO_auth_token'] 客户端=客户端帐户\u sid,身份验证\u令牌 计数=0 def设备配置: 客户端=物联网v1.Devic
def hello_pubsub(count, event, context):
...
然后使用以下命令调用它:
hello_pubsub(count, event, context)
您应该将count作为参数传递到函数中,并在调用函数的循环中递增它。如果您确实需要在函数中为其赋值,则可以在赋值之前使用语句“全局计数”。您正在尝试将局部变量调用到另一个函数中。您还需要将变量传递到函数中。希望这有帮助
account_sid = os.environ['TWILIO_ACCOUNT_SID']
auth_token = os.environ['TWILIO_AUTH_TOKEN']
client = Client(account_sid, auth_token)
global count = 0
def hello_pubsub(event, context,count):
如果他们把它变成一个全局变量,它会起作用吗对不起,但是为什么全局变量这么糟糕呢?你需要在hello_pubsub函数的第一行添加全局计数。我不鼓励使用globals@JammyDodger我一般也不会。但这可以解释错误并解决问题。
account_sid = os.environ['TWILIO_ACCOUNT_SID']
auth_token = os.environ['TWILIO_AUTH_TOKEN']
client = Client(account_sid, auth_token)
global count = 0
def hello_pubsub(event, context,count):