我正在尝试为应用程序制作CLI和GUI,在该应用程序中,我使用CLI来执行任务并为GUI返回字符串并给出输出。
但是问题是,当我导入CLI时,它首先需要从直接CLI运行时输入的内容,但是从GUI运行时,我不希望它从CLI中获取输入。
因此,为此,我可以通过任何方式检查CLI脚本是直接运行还是从CLI运行,或者是否已导入到某个文件中然后运行。
这是我所做的一个例子:
cli.py
print("hello CLI run")
x=input()
def pr(x):
return("this is what you typed = "+x)
print(pr(x))
gui.py
from tkinter import *
from cli import pr
def sb():
c=en.get()
zz=pr(c)
expression.insert(0,zz)
win=Tk()
lbl=Label(win,text="Hello World")
lbl.pack()
en=Entry(win)
en.pack()
sn=Button(win,height = 2, width = 10,text="submit",command=sb)
sn.pack()
lbl=Label(win,text="Output :")
lbl.pack()
expression=Entry(win)
expression.pack()
win.mainloop()
运行此程序时,这要求我先在CLI中输入,然后给出CLI输出,然后运行GUI
答案 0 :(得分:1)
您应该在主函数中添加逻辑,然后在文件底部添加
if __name__ == "__main__":
# Do some validation
main()
'main'是在其中执行顶级代码的作用域的名称。从标准输入,脚本或交互式提示中读取时,模块的
__name__
设置为'__main__'
。
答案 1 :(得分:1)
gui.py
:from tkinter import *
from cli import C
def sb():
c=en.get()
zz=C(c).pr()
expression.insert(0,zz)
win=Tk()
lbl=Label(win,text="Hello World")
lbl.pack()
en=Entry(win)
en.pack()
sn=Button(win,height = 2, width = 10,text="submit",command=sb)
sn.pack()
lbl=Label(win,text="Output :")
lbl.pack()
expression=Entry(win)
expression.pack()
win.mainloop()
cli.py
:print("hello CLI run")
class C:
def __init__(self,x):
self.x=x
def pr(self):
return("this is what you typed = "+self.x)