Raspberry Pi的Python脚本未正常运行
前几天我写的python脚本有点麻烦。这个脚本是为我的rasbperry pi编写的,它有一个连接到GPIO引脚的数字接口。此脚本的目的是测试并查看它是否将解锁机电锁5秒。虽然当我运行脚本时什么都没发生。没有错误被记录,而且是python脚本新手,我不确定问题出在哪里。如有任何建议或帮助,将不胜感激 我知道数字界面和raspberry pi交互并没有什么问题,因为我可以使用下面的命令手动运行python,并且一切正常。把锁打开,然后我就可以把它关了。虽然当我运行脚本时,什么都没有发生Raspberry Pi的Python脚本未正常运行,python,linux,raspberry-pi,new-operator,Python,Linux,Raspberry Pi,New Operator,前几天我写的python脚本有点麻烦。这个脚本是为我的rasbperry pi编写的,它有一个连接到GPIO引脚的数字接口。此脚本的目的是测试并查看它是否将解锁机电锁5秒。虽然当我运行脚本时什么都没发生。没有错误被记录,而且是python脚本新手,我不确定问题出在哪里。如有任何建议或帮助,将不胜感激 我知道数字界面和raspberry pi交互并没有什么问题,因为我可以使用下面的命令手动运行python,并且一切正常。把锁打开,然后我就可以把它关了。虽然当我运行脚本时,什么都没有发生 pytho
python
import piface.pfio
piface.pfio.init()
piface.pfio.digital_write(0, 1)
led0 = piface.pfio.LED(0)
led0.turn_off()
我的python脚本
#!/usr/bin/env python3
"""Door Lock: System to control an electric lock"""
import piface.pfio as piface
from time import sleep
class AuthToken:
def _init_(self, id, secret):
self.id=id
self.secret.secret
class TestDoorController:
def send_open_pulse(self):
print "unlock the door"
class BasicAuthenticator:
id = "Andrew"
secretPassword = "1234"
def check(self,token):
print "checking input of '" + token.id + "', + password + : " + token.secret + ", against secret password'" + self.secretPassword +"'"
result = (token.secret == self.secretPassword) & (token.id == self.id)
print "authentication is: " + str(result)
return result
class TestInput:
def getInput(self):
print "checking for input"
authToken + AuthToken("Andrew","1234")
return authInput
class DoorControllerPiFace:
def send_open_pulse(self):
piface.digital_write(0,1)
sleep(5)
piface.digital_write(0,0)
def main():
authInput = TestInput()
authenticator = BasicAuthenticator()
doorController = DoorControllerPiFace()
if(authenticator.check(authInput.getInput())):
doorController.send_open_pulse()
if _name_ == '_main_':
main()
现在我知道构造函数不带参数了
文件“door_controllerTEST.py”,第47行,在
main()
文件“door_controllerTEST.py”,第43行,主菜单
if(authenticator.check(authInput.getInput()):
文件“door_controllerTEST.py”,第30行,在getInput中
返回AuthToken(“Andrew”,“1234”)
TypeError:此构造函数不接受任何参数
在我的AuthToken类中添加了额外的u,它给了我一个错误,我的pfio尚未初始化。所以我加了进去
import piface.pfio as pfio
pfio.init()
从那以后一切都正常了。课堂测试输入 函数
getInput(self):
没有返回任何内容(即变量authInput
为空)
您可能想要返回创建的令牌<代码>返回AuthToken(“Andrew”,“1234”)即
类基本验证程序
此类检查self.id
和self.secretPassword
但未设置它们。您正在设置id
和secretPassword
Main
您的主函数也不会被调用,如果_uname _u=='__main _u':带有双下划线,则应该是
class AuthToken:
def __init__(self, id, secret):
self.id=id
self.secret=secret
class TestDoorController:
def send_open_pulse(self):
print "unlock the door"
class BasicAuthenticator:
def __init__(self):
self.id = "Andrew"
self.secretPassword = "1234"
def check(self,token):
print "checking input of '" + token.id + "', + password + : " + token.secret + ", against secret password'" + self.secretPassword +"'"
result = (token.secret == self.secretPassword) & (token.id == self.id)
print "authentication is: " + str(result)
return result
class TestInput:
def getInput(self):
print "checking for input"
return AuthToken("Andrew","1234")
class DoorControllerPiFace:
def send_open_pulse(self):
piface.digital_write(0,1)
sleep(5)
piface.digital_write(0,0)
def main():
authInput = TestInput()
authenticator = BasicAuthenticator()
doorController = DoorControllerPiFace()
if(authenticator.check(authInput.getInput())):
doorController.send_open_pulse()
if __name__ == '__main__':
main()
你的权利我不小心把它放在那里,但即使在添加了新行之后,也没有发生任何事情。它仍在运行,没有给我任何输出。如果_name_==\u main:
,请尝试在中更改为双下划线,您将得到一些输出:)添加到双注释中,现在我至少收到一些消息。我把它们放在上面的描述中。我是否将self.id定义为id,或者我是否错过了阅读您在AuthToken类的init中也缺少双下划线,请检查我答案中的代码,应该可以。我添加了上面的描述,现在一切正常。因为是python新手,所以添加了这些额外的行,这是一件好事吗?我只是好奇