以下代码中的(ev=none)
参数是什么?
// This program detects shock and responds by turning an LED on.
import RPi.GPIO as GPIO
#!/usr/bin/env python
import RPi.GPIO as GPIO
ShockPin = 11
LedPin = 12
Led_status = 1
def setup():
GPIO.setmode(GPIO.BOARD)
GPIO.setup(LedPin, GPIO.OUT)
GPIO.setup(ShockPin, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.output(LedPin, GPIO.HIGH)
def swLed(ev=None):
global Led_status
Led_status = not Led_status
GPIO.output(LedPin, Led_status)
print "led: " + ("on" if Led_status else "off")
def loop():
GPIO.add_event_detect(ShockPin, GPIO.FALLING, callback=swLed, bouncetime=200)
while True:
pass
def destroy():
GPIO.output(LedPin, GPIO.LOW) # led off
GPIO.cleanup() # Release resource
if __name__ == '__main__': # Program start from here
setup()
try:
loop()
except KeyboardInterrupt:
destroy()
答案 0 :(得分:0)
无论何时定义新函数,都可以为函数的参数指定默认值。如果您选择这样做,您将使用刚才看到的语法来完成:
def my_func(arg_1, arg_2="some_value"):
print(arg_1, arg_2)
每当您选择调用新功能时,可以使用两个参数调用
my_func('a', 'b')
或者,如果您将最后一个参数默认为某个值,则只能使用第一个参数调用它,而第二个参数将始终采用默认值。
my_func('a')
在这种情况下,第二个参数将变为“some_value”。
使用默认值可以获得更多乐趣:http://effbot.org/zone/default-values.htm
TL; DR版本:在你的情况下,编写该代码的人想要将“ev”默认为None。不知道为什么,因为函数的唯一参数从未在实际的函数代码中使用过。