python - 从另一个函数调用变量

时间:2017-04-22 08:49:10

标签: python function variables

iam在tkinter上工作iam使用filedialog上传文件我的目标是有拖车按钮。 button1用于上传txt文件 button2用于处理文件,参见我当前的功能设置

class procFile:
    def uploadFile(self, filename):
        self.filename = filename

    def displayName(self):
        return self.filename

    def filePath(self):
        print("%s" %self.filename)

def main():
    upload = procFile()
    upload.uploadFile(filedialog.askopenfilename(filetypes=(('txt', '*.txt'), ('All Files', '*.*'))))
    upload.filePath()

我需要另一个按钮来启动另一个从主函数

访问变量的函数

1 个答案:

答案 0 :(得分:0)

虽然您提供详细信息的问题很少,但这有两种方式可以达到我对您的问题的理解。

方法1

如果要访问类外的函数中的类变量,则:

class Class:
    # do something
    # example:
    def __init__(self):
        self.var = 2
        print(self.var)

def outsideFunc():
    # operations you want to do
    # example:
    print(a.var * 3)

结果

>> a = Class()
2
>> outsideFunc()
6

请注意,outsideFunc()可以在程序中随时定义。但是,您只能在初始化课程后调用outsideFunc()

原因是filepath是类procfile的一个实例,只有在初始化类时才会定义它。初始化类之后的句点可以跟随各种对象,例如函数Class.func(),变量Class.var或甚至嵌套类Class.subClass

方法2

如果要访问类中的类变量,那么:

class Class:
    # do something
    # example:
    def __init__(self):
        self.var = 4
        print(self.var)

    def func(self):
        # operations you want to do
        # example
        print(self.var + 5)

结果

>> b = Class()
4
>> b.func()
9

执行与之前相同的操作,然后通过类中的self.var访问变量。

<强>比较

方法1 要求在外部函数中调用类变量时,它必须与用于初始化类的变量名相同。所以当你执行a = Class()时,引用初始化类的类之外的任何函数都必须执行a.object,其中object可以是函数,变量或子类。

方法2 需要相同的东西。但是,当类中的函数引用其中一个变量时,它需要使用self.object,其中object可以是函数,变量或子类。

两者都要求您首先使用varName = className()启动类,其中varName只是用于引用类的变量。然后,您像以前一样使用varName.object