鱼C论坛

 找回密码
 立即注册
查看: 2281|回复: 12

求助求助,鱼币给你

[复制链接]
发表于 2020-3-8 09:49:47 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
python怎么将两个不同的程序编写成一个程序的两个进程?然后在一个程序里就可以运行相应的两个程序?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-8 09:55:14 From FishC Mobile | 显示全部楼层

回帖奖励 +1 鱼币

举例说明
这都在说天书啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-8 09:57:06 | 显示全部楼层
把两个程序打包成两个函数,然后用多线程
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-8 09:59:11 | 显示全部楼层
首先把两个程序里的代码都包装成函数,然后 import 程序名(两个程序目录要相同)
调用直接 程序名.函数名(参数) 。
两个进程如果要同时运行的话参考:https://www.runoob.com/python3/python3-multithreading.html
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-8 10:03:31 From FishC Mobile | 显示全部楼层
四楼和三楼:难道楼主问的就不能是如何把记事本和扫雷游戏弄一起吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-8 10:04:01 | 显示全部楼层
qiuyouzhi 发表于 2020-3-8 09:57
把两个程序打包成两个函数,然后用多线程

程序怎么打包成函数呀,求助,比如说这个程序,其中有多个类
import RPi.GPIO as GPIO
import time
import numpy as np
from tkinter import *
import XY
def setup():
    GPIO.setmode(GPIO.BOARD)
    GPIO.setup(PX, GPIO.OUT)
    GPIO.setup(DX, GPIO.OUT)
    GPIO.setup(PY, GPIO.OUT)
    GPIO.setup(DY, GPIO.OUT)
def rightStep():
    setStepper1(1, 0)
    setStepper1(0, 0)
    setStepper1(1, 0)
    setStepper1(0, 0)
def leftStep():
    setStepper1(1, 1)
    setStepper1(0, 1)
    setStepper1(1, 1)
    setStepper1(0, 1)
def forwardStep():
    setStepper2(1, 0)
    setStepper2(0, 0)
    setStepper2(1, 0)
    setStepper2(0, 0)
def backwardStep():
    setStepper2(1, 1)
    setStepper2(0, 1)
    setStepper2(1, 1)
    setStepper2(0, 1)


def setStepper1(in1, in2):
    GPIO.output(PX, in1)
    GPIO.output(DX, in2)
    time.sleep(float(inp2.get()))
def setStepper2(in1, in2):
    GPIO.output(PY, in1)
    GPIO.output(DY, in2)
    time.sleep(float(inp2.get()))

def up():
    a=int(inp1.get())
    for i in range(a):
        forwardStep()
        XY.Y=XY.Y+1
def down():
    a=int(inp1.get())
    for i in range(a):
        backwardStep()
        XY.Y=XY.Y-1
def left():
    a=int(inp1.get())
    for i in range(a):
        leftStep()
        XY.X=XY.X-1
def right():
    a=int(inp1.get())
    for i in range(a):
        rightStep()
        XY.X=XY.X+1
def move():
    XY.A=XY.X
    XY.B=XY.Y
    if(XY.X>=0):
        for i in range(XY.X):
            leftStep()
            XY.X=XY.X-1
    if(XY.X<0):
        for i in range(abs(XY.X)):
            rightStep()
            XY.X=XY.X+1
    if(XY.Y>=0):
        for i in range(XY.Y):
            backwardStep()
            XY.Y=XY.Y-1
    if(XY.Y<0):
        for i in range(abs(XY.Y)):
            forwardStep()
            XY.Y=XY.Y+1


def back():
    XY.X=XY.A
    XY.Y=XY.B
    if(XY.B>=0):
        for i in range(XY.B):
            forwardStep()         
    if(XY.B<0):
        for i in range(abs(XY.B)):
            backwardStep()
    if(XY.A>=0):
        for i in range(XY.A):
            rightStep()
    if(XY.A<0):
        for i in range(abs(XY.A)):
            leftStep()
   
   
def Repeat():
    while True:
        forwardStep()

        
        M=XY.X
        N=XY.Y
        
        

        if(M>=0):
            for i in range(M):
                leftStep()            
        if(M<0):
            for i in range(abs(M)):
                rightStep()
        if(N>=0):
            for i in range(N):
                backwardStep()
        if(N<0):
            for i in range(abs(N)):
                forwardStep()
               
        time.sleep(5)
        if(N<0):
            for i in range(N):
                backwardStep()
        if(N>=0):
            for i in range(abs(N)):
                forwardStep()
        if(M<0):
            for i in range(M):
                leftStep()            
        if(M>=0):
            for i in range(abs(M)):
                rightStep()
         
               

      

        
        
        time.sleep(5)
        

def zero():
    XY.X=0
    XY.Y=0
    XY.A=0
    XY.B=0
   


def Key(a):#keyborad
    if(a.keysym=='Up'):
        forwardStep()
        XY.Y=XY.Y+1
    elif(a.keysym=='Down'):
        backwardStep()
        XY.Y=XY.Y-1
      
    elif(a.keysym=='Right'):
        rightStep()
        XY.X=XY.X+1
      
    elif(a.keysym=='Left'):
        leftStep()
        XY.X=XY.X-1

def getxy():
    lab3.configure(text=("(%d,%d)" %(XY.X,XY.Y)))
    root.after(1,getxy)


     
root=Tk()
root.geometry('480x480')
root.title('3+1物创操作窗口1.0')

PX = 18
DX = 12
PY = 32
DY = 37



btn1=Button(root,text='Up',command=up) #up
btn1.place(relx=0.2, rely=0.1, relwidth=0.1, relheight=0.1)
btn2=Button(root,text='Down',command=down) #down
btn2.place(relx=0.2, rely=0.2, relwidth=0.1, relheight=0.1)
btn3=Button(root,text='Left',command=left) #left
btn3.place(relx=0.1, rely=0.2, relwidth=0.1, relheight=0.1)
btn4=Button(root,text='Right',command=right) #right
btn4.place(relx=0.3, rely=0.2, relwidth=0.1, relheight=0.1)
btn5=Button(root,text='Capture',command=capture)#capture
btn5.place(relx=0.3, rely=0.1, relwidth=0.1, relheight=0.1)
inp1=Entry(root)  #distance
inp1.place(relx=0.6, rely=0.1, relwidth=0.3, relheight=0.1)
inp2=Entry(root) #time
inp2.place(relx=0.6, rely=0.2, relwidth=0.3, relheight=0.1)


btn6=Button(root,text='Back Origin',command=move) #back
btn6.place(relx=0.3, rely=0.8, relwidth=0.2, relheight=0.1)
btn7=Button(root,text='Zero',command=zero) #
btn7.place(relx=0.2, rely=0.6, relwidth=0.1, relheight=0.1)

btn8=Button(root,text='Back ',command=back) #move
btn8.place(relx=0.6, rely=0.8, relwidth=0.1, relheight=0.1)
btn9=Button(root,text='Repeat',command=Repeat) #repeatbtn8.place(relx=0.8, rely=0.8, relwidth=0.1, relheight=0.1)



lab1=Label(root,text="Length:")
lab1.place(relx=0.4, rely=0.1, relwidth=0.2, relheight=0.1)
lab2=Label(root,text="Speed:")
lab2.place(relx=0.4, rely=0.2, relwidth=0.2, relheight=0.1)


lab3=Label(root,text='')
lab3.pack(padx=1,pady=206)
getxy()

lab4=Label(root,text="Coordinate:")
lab4.place(relx=0.2, rely=0.4, relwidth=0.2, relheight=0.1)


root.bind("<Key>",Key)
root.mainloop()

   
GPIO.cleanup()




[/code]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-8 10:09:27 | 显示全部楼层
末日之泪 发表于 2020-3-8 10:04
程序怎么打包成函数呀,求助,比如说这个程序,其中有多个类
import RPi.GPIO as GPIO
import time

函数定义可以放在外面,然后写一个引擎类,把需要运行的东西放进去,然后稍微打包一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-8 10:33:33 | 显示全部楼层
你在说什么?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-8 10:34:24 | 显示全部楼层
yexing 发表于 2020-3-8 09:59
首先把两个程序里的代码都包装成函数,然后 import 程序名(两个程序目录要相同)
调用直接 程序名.函数名 ...

包装成函数的意思是不是将文件转换为exe格式呀?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-8 10:43:32 | 显示全部楼层
末日之泪 发表于 2020-3-8 10:34
包装成函数的意思是不是将文件转换为exe格式呀?

不是,把代码放到  def 函数名()  语句里就是包装函数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-8 10:59:41 | 显示全部楼层
yexing 发表于 2020-3-8 10:43
不是,把代码放到  def 函数名()  语句里就是包装函数

要是代码里已经有def类的函数,这样也可以吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-8 11:01:17 | 显示全部楼层
末日之泪 发表于 2020-3-8 10:59
要是代码里已经有def类的函数,这样也可以吗?

可以
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-24 13:38:42 | 显示全部楼层
学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-17 13:55

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表