小编Mar*_*tin的帖子

将参数传递给 Python 中的回调函数

我想知道将参数传递给回调函数的语法。

这是我的代码:

#!/usr/bin/env python3
import sys,os,time
import RPi.GPIO as GPIO
import subprocess

flag_callback=True

def Callback(channel,port_nb,dist_user,dist_ip):
        global flag_callback
        flag_callback=False
        print('Button Pushed. SSH Tunnel open on port: \"{}\" until reboot.'.format(port_nb))
        bashCommand = "nohup ssh -NR {}:localhost:22 {}@{}".format(port_nb,dist_user,dist_ip)
        subprocess.Popen(bashCommand.split(),
                stdout=open('/dev/null', 'w'),
                stderr=open('logfile.log', 'a'),
                preexec_fn=os.setpgrp
                )

def main():
        if len(sys.argv) > 1:
                port_nb=sys.argv[1]
        else:
                port_nb='2222'

        if len(sys.argv) > 2:
                dist_user=sys.argv[2]
        else:
                dist_user='martin'

        if len(sys.argv) > 3:
                dist_ip = sys.argv[3]
        else:
                dist_ip='192.168.11.111'
        GPIO.setmode(GPIO.BCM)
        GPIO.setup(4, GPIO.IN, pull_up_down=GPIO.PUD_UP)
        GPIO.add_event_detect(4, GPIO.FALLING, callback = Callback(port_nb,dist_user,dist_ip), bouncetime = 1000)
        try: …
Run Code Online (Sandbox Code Playgroud)

python arguments callback

3
推荐指数
1
解决办法
2万
查看次数

标签 统计

arguments ×1

callback ×1

python ×1