在文件2中,用户将输入一个值,我希望该值在1个文件中使用。另外,我想创建一个函数来检查文件2,如果文件2丢失,文件1应该独立地获得默认值。 如果我将文件转换为exe,这也可以工作,我尝试使用os.path.exists(“路径”),但我希望它是路径独立的,任何建议?
from tkinter import *
multiplier = Tk()
multiplier.config(background="BLACK")
multiplier.geometry("400x400")
multiplier.wm_title("Multiplier Selector")
label1 = Label(multiplier, text="Select the Appropriate Multiplier", bg="BLACK", fg="WHITE", font="Times 14 bold")
label1.place(relx=0.1,rely=0.1)
a = StringVar()
x2 = Radiobutton (multiplier, text="x2", font="Times 14 bold", bg="BLACK", fg="WHITE", value=1,command=lambda:a.set("2"),selectcolor="BLACK")
x4 = Radiobutton (multiplier, text="x4", font="times 14 bold", bg="BLACK", fg="WHITE", value=2, command=lambda:a.set("4"), selectcolor="BLACK")
x6 = Radiobutton (multiplier, text="x6", font="Times 14 bold", bg="BLACK", fg="WHITE", value=3, command=lambda:a.set("6"), selectcolor="BLACK")
button = Button (multiplier, text="value of a", fg="White", bg="BLACK", command=lambda:print (a.get()))
button.place(relx=0.5, rely=0.5)
x2.place(relx=0.1, rely=0.3)
x4.place(relx=0.1, rely=0.5)
x6.place(relx=0.1,rely=0.7)
multiplier.mainloop()
from tkinter import*
from tkinter import messagebox
from file_3 import abc
def raise_frame(Frame):
Frame.tkraise()
def on():
if a2.get()=="" or a3.get()=="" or a4.get()=="" or a5.get()=="" or a6.get()=="" :
messagebox.showerror("Error", "Empty Field")
else:
a = float(a1.get()) * 10000000000
b = float(a2.get()) * 1000000000
c = float(a3.get()) * 1000000
d = float(a4.get()) * 1000
e = float(a5.get())
f = float(a6.get()) / 1000
h = float(abc.get())
g = float((a + b + c + d + e + f)/h)
setframepowergreen.lift()
print(g)
答案 0 :(得分:-1)
不幸的是,我无法提供太多帮助,因为这个问题很模糊。但据我所知,您希望将数据从一个文件传递到另一个文件。
对于类,当您从第二个文件调用类/函数时,可以将self
作为参数传递。然后使用该参数设置变量:
##### file_a.py #####
from file_b import B
class A:
def __init__(self):
b_object = B(self)
print(self.varFromFileB)
A()
##### file_b.py #####
class B:
def __init__(self, a):
var = 'this variable from file_b gets passed to file_a'
a.varFromFileB = var
使用函数,您可以从第二个文件调用函数/类并将变量设置为其返回值:
##### file_a.py #####
from file_b import B
def A():
varFromFileB = B()
print(varFromFileB)
A()
##### file_b.py #####
def B():
var = 'this variable from file_b gets passed to file_a'
return var
如果整个应用程序不是太大,可以通过将所有代码保存在一个文件中来避免这些导入。从那里,您可以使用上面的两种方法,或者将所有内容放在一个类/函数中,以使事情变得更容易。
将应用程序转换为可执行文件不应更改任何内容。它将为您处理所有导入和依赖。