什么是(ev = none)论证?

时间:2017-08-22 15:43:12

标签: python

以下代码中的(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()

1 个答案:

答案 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。不知道为什么,因为函数的唯一参数从未在实际的函数代码中使用过。

相关问题