Python中文
首页
教程
问答
标签
搜索
登录
注册
全局变量声明+未绑定错误:赋值前引用局部变量?
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我截取了以下代码。它是物联网液体流量计演示的一部分(因此GPIO参考文献)。当运行它时,函数似乎忽略了变量旋转被定义为全局变量</p> <pre class="lang-html prettyprint-override"><code>import RPi.GPIO as GPIO import time, sys LIQUID_FLOW_SENSOR = 32 GPIO.setmode(GPIO.BOARD) GPIO.setup(LIQUID_FLOW_SENSOR, GPIO.IN, pull_up_down = GPIO.PUD_UP) global rotation rotation = 0 def countPulse(channel): rotation = rotation+1 print ("Total rotation = "+str(rotation)) litre = rotation / (60 * 7.5) two_decimal = round(litre,3) print("Total consumed = "+str(two_decimal)+" Litres") GPIO.add_event_detect(LIQUID_FLOW_SENSOR, GPIO.FALLING, callback=countPulse) while True: try: time.sleep(1) except KeyboardInterrupt: print 'Program terminated, Keyboard interrupt' GPIO.cleanup() sys.exit() </code></pre> <p>错误:</p> ^{pr2}$ <p>如何以全局方式声明变量而不在每次调用countPulse时将其重置为零?</p> <p>PS:这里解释了回调和通道变量:<a href="https://sourceforge.net/p/raspberry-gpio-python/wiki/Inputs/" rel="nofollow noreferrer">https://sourceforge.net/p/raspberry-gpio-python/wiki/Inputs/</a></p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>只需在函数中声明它是全局的。在</p> <pre><code>def countPulse(channel): global rotation rotation = rotation+1 ... </code></pre>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
无法使用Django/mongoengine连接到MongoDB(身份验证失败)
3 回答
无法使用Django\u mssql\u后端迁移到外部hos
3 回答
无法使用Django&Python3.4连接到MySql
9 回答
无法使用Django+nginx上载媒体文件
10 回答
无法使用Django1.6导入名称模式
4 回答
无法使用Django1.7和mongodb登录管理站点
5 回答
无法使用Djangoadmin创建项目,进程使用了错误的路径,因为我事先安装了错误的Python
9 回答
无法使用Djangockedi验证CBV中的字段
10 回答
无法使用Djangocketditor上载图像(错误400)
6 回答
无法使用Djangocron进行函数调用
4 回答
无法使用Djangofiler djang上载文件
2 回答
无法使用Djangokronos
9 回答
无法使用Djangomssql provid
4 回答
无法使用Djangomssql连接到带有Django 1.11的MS SQL Server 2016
8 回答
无法使用Djangomssq迁移Django数据库
4 回答
无法使用Djangonox创建用户
9 回答
无法使用Djangopyodb从Django查询SQL Server
1 回答
无法使用Djangopython3ldap连接到ldap
1 回答
无法使用Djangoredis连接到redis
3 回答
无法使用Django中的FK创建新表
10 回答