【发布时间】:2014-05-01 13:42:34
【问题描述】:
您好,我正在开发一个使用 Phidget 传感器的系统,但在尝试将一些变量写入数据库时遇到了一些问题。我已经阅读了大量关于类和调用变量的内容,但我就是无法运行此代码。
我的代码在下面,你可以看到我在调用数据库方法时输入了“self”参数,但它抱怨“self”没有定义。如果我没有 self ,我会收到一条抱怨“database() 缺少 1 个必需的位置参数:'self'”
connection = sqlite3.connect('testing.db')
cursor = connection.cursor()
class sensors():
def interfaceKitAttached(self, e):
attached = e.device
print("InterfaceKit %i Attached!" % (attached.getSerialNum()))
def sensorInputs(self, e):
temperature = (interfaceKit.getSensorValue(0)*0.2222 - 61.111)
self.sound = (16.801 * math.log((interfaceKit.getSensorValue(1))+ 9.872))
light = (interfaceKit.getSensorValue(2))
print("Temperature is: %i " % temperature)
print("Sound is : %i" %self.sound)
print("Light is: %i \n" %light)
interfaceKit.setSensorChangeTrigger(0, 25)
interfaceKit.setSensorChangeTrigger(1, 35)
interfaceKit.setSensorChangeTrigger(2, 60)
def database(self):
cursor.execute('''CREATE TABLE events1
(sensor text, value text)''')
cursor.execute ('INSERT INTO events1 VALUES (?, ?)', ('sounding', self.sound))
connection.commit()
connection.close()
try:
interfaceKit.setOnAttachHandler(interfaceKitAttached)
interfaceKit.setOnSensorChangeHandler(sensorInputs)
database(self)
谢谢
【问题讨论】:
-
我已经修复了部分代码格式问题,但我不确定我是否正确缩进了末尾的
try块。没有except,try子句是不合法的,所以我不确定它应该如何工作。 -
抱歉,我以为我复制了所有代码(包括 except 子句),但显然不是
-
没关系,只需编辑问题以将完整代码放入(或至少相关部分)。确保它在之后正确缩进。最简单的方法通常是从编辑器中粘贴它,然后突出显示它并单击
{}按钮让 Stack Overflow 缩进更多。