如何将值从一个python脚本类传递到另一个python脚本

时间:2014-07-31 14:09:03

标签: python-2.7 tkinter

我需要将两个python脚本类相互连接并传输值。 我似乎犯了一些错误来初始化类对象并传递 价值请注意我遵循的方式,有人请告诉我我的错误。

这行代码有什么问题

def TransferTreeVal(objSubS):

    objCM=MainScript.clsMain()
    print "Transfer value"

一些更详细的代码

##MainScript.py

import os
from Tkinter import *
import Tkinter as tk
import ttk
class clsMain():

    def __init__ (objCM):

        root['width']=500
        root['height']=400
        root['bg']='brown'
        objCM.MethodDisplay()


    def MethodDisplay(objCM):

       print "display windows"


root=tk.Tk()
objCM = clsMain()
root.mainloop()


##SubScript.py 

import os
from Tkinter import *
import Tkinter as tk
import ttk

import MainScript

class clsSubS():

    def __init__ (objSubS):

        root['width']=500
        root['height']=500
        root['bg']='brown'
        objSubS.DispWin()

    def TransferTreeVal(objSubS):

        objCM=MainScript.clsMain()
        print "Transfer value"


root=tk.Tk()
objSubS = clsSubS()

1 个答案:

答案 0 :(得分:0)

你做错的主要是你导入的文件中包含可执行代码。导入SubScript.py时,它将执行底部的代码,该代码将创建Tk的实例。但是,您的主脚本还会创建Tk的实例,并且您应该只在运行的程序中有一个实例。

通常情况下,如果您要导入一个类,但是您也希望将其用作独立脚本,则可以隐藏"支票背后的独立脚本代码如下:

if __name__ == "__main__":
    root = tk.Tk()
    objSubS = clsSubS()

这样,只有python SubScript.py才能执行代码。此外,导入SubScript时,该代码将运行。