Python 在程序运行时更改源文件

Python 在程序运行时更改源文件,python,import,tkinter,refresh,Python,Import,Tkinter,Refresh,我试图通过编辑程序的源文件(在Python3.4.2、Windows8.1下)来动态改变程序的行为。我的程序是一个带有两个值相加按钮的tkinterGUI,但我希望能够更改按钮的行为。我目前正试图通过编辑源文件(例如,更改加法到减法),保存它,然后单击一个按钮(其回调函数imports)来实现这一点。我希望我的代码更改能够反映在正在运行的GUI中,而无需退出并重新启动程序。我还希望此导入只重新编译我更改的行,而不是整个文件 程序,reload0.py: import time import se

我试图通过编辑程序的源文件(在Python3.4.2、Windows8.1下)来动态改变程序的行为。我的程序是一个带有两个值相加按钮的
tkinter
GUI,但我希望能够更改按钮的行为。我目前正试图通过编辑源文件(例如,更改加法到减法),保存它,然后单击一个按钮(其回调函数
import
s)来实现这一点。我希望我的代码更改能够反映在正在运行的GUI中,而无需退出并重新启动程序。我还希望此导入只重新编译我更改的行,而不是整个文件

程序,
reload0.py

import time
import serial
import sys
import os
import tkinter as tk
from tkinter import ttk
from tkinter import *
from tkinter import messagebox
from tkinter import filedialog
try:
  import Tkinter              # Python 2
  import ttk
except ImportError:
  import tkinter as Tkinter   # Python 3
  import tkinter.ttk as ttk
mGui = Tk()
mGui.title("GUI")
mGui.geometry('400x200+100+100')
def mOp():
  num1 = value1.get()
  num2 = value2.get()
  Op=num1+num2
  name1.set('Sum')
  name2.set(Op)
def mReLoad():
  import reload0.py
  mGui.update()
def mCheck():
  if len(name1.get()) == 0:
    name1.set('name1')
    mGui.update()
  if (len(name2.get()) == 0):
    name2.set('name2')
    mGui.update()
  try:
      print(value1.get())
  except ValueError:
      value1.set(0)
      mGui.update()
  try:
      print(value2.get())
  except ValueError as ValE:
      value2.set(0)
      mGui.update()
      print(ValE)

value1 = DoubleVar()
value2 = DoubleVar()
name1 = StringVar()
name2 = StringVar()
mButtonSave = Button(mGui, text = "Operation", command = mOp, fg = 'Red').place(x=150,y=80)
mButtonLoad = Button(mGui, text = "ReLoad Operation", command = mReLoad, fg = 'Red').place(x=150,y=110)
mButtonLoad = Button(mGui, text = "Check", command = mCheck, fg = 'Red').place(x=150,y=140)
tText1 = Entry(mGui, textvariable = name1).place(x=10,y=80)
tText2 = Entry(mGui, textvariable = name2).place(x=10,y=100)
vText1 = Entry(mGui, textvariable = value1).place(x=10,y=120)
vText2 = Entry(mGui, textvariable = value2).place(x=10,y=140)

对于更改按钮功能的目的,有比更改源代码更简单的方法,正如所评论的,这是不可能的

从我看到的你的另一个问题来看,你对python编程相当陌生。我建议先花些时间学习一些基本教程,了解python和一些编程概念

比如说

import reload.py 
应该是

import reload


读一本书,做一些例子,这样你就足够回答这里的问题了,祝你好运

我建议避免使用术语
reload
,它在python中有特定的含义,并且基本上不受支持。在任何地方使用
refresh
。Python不允许您修改源文件,然后动态地再次导入它们。如果您删除了一个类定义或其他什么呢?解释器将如何处理该类的剩余对象?无论你想用它来完成什么,我保证它都是一个。此外,你的代码除了没有附加到
try
块的块之外,还有裸露的
块、不一致的缩进和非格式。我在问我怎么做,我尝试过使用“reload”,但它并没有像我预期的那样工作,我只是需要一些帮助或指导