python - 代码在转移到函数时停止工作?
问题描述
我正面临将 python 类转换为函数以用作另一个主要代码的助手的问题。以下是代码及其比较的摘录:
sensor_data = {'temperature': 0}
client = mqtt.Client()
client.loop_start()
try:
while True:
temperature = sense.get_temperature()
print(u"Temperature: {:g}".format(temperature))
sensor_data['temperature'] = temperature
# Sending temperature data to ThingsBoard
client.publish('v1/devices/me/telemetry', json.dumps(sensor_data), 1)
except KeyboardInterrupt:
pass
client.loop_stop()
client.disconnect()
但是当我尝试转移到要调用的函数时,假设“数据”是要输入函数的随机变量:
def getTemperature(data)
sensor_data = {'temperature': 0}
client = mqtt.Client()
client.loop_start()
try:
while True:
print(u"Temperature: {:g}".format(data))
sensor_data['temperature'] = data
# Sending temperature data to ThingsBoard
client.publish('v1/devices/me/telemetry', json.dumps(sensor_data), 1)
except KeyboardInterrupt:
pass
client.loop_stop()
client.disconnect()
return data
该函数没有收到任何错误,但它没有在控制台或任何东西上输出任何打印语句。发生这种情况是否有原因?
解决方案
def getTemperature(data):
sensor_data = {'temperature': 0}
client = mqtt.Client()
client.loop_start()
try:
while True:
print(u"Temperature: {:g}".format(data))
sensor_data['temperature'] = data
# Sending temperature data to ThingsBoard
client.publish('v1/devices/me/telemetry', json.dumps(sensor_data), 1)
except KeyboardInterrupt:
pass
except Exception as ex:
print(ex)
client.loop_stop()
client.disconnect()
return data
getTemperature(5)
尝试这个。
推荐阅读
- python - 将列转置为行,将第一列保留为名称
- python - 如何将带有 utf-8 编码的文本文件存储到 AWS S3 存储桶中?
- android - 为什么要定义 layout_height 和 width?
- react-native - 反应导航:嵌套路由不起作用
- c - 在不必声明巨大的二维数组的情况下找到平均大小分布的有效方法是什么?
- haskell - Haskell 多态函数使用 Either Left Right
- python - Pandas - 在 groupby 之后从嵌套标题中选择多列
- ruby-on-rails - 使用 RSpec 测试队列分为两个流
- python-3.x - 在 python 中使用机器学习根据用户的喜好对用户进行聚类
- r - 使用来自多个数据框的列创建新数据框