在 Python 中从一种方法调用变量到另一种方法

Posted

技术标签:

【中文标题】在 Python 中从一种方法调用变量到另一种方法【英文标题】:Calling variables from one method to another in Python 【发布时间】:2020-06-18 05:21:59 【问题描述】:

所以这是我在初学者教程之外从事的第一个项目。到目前为止,我已经制作了两个模块,一个从用户输入创建 URL。它将一堆东西连接在一起,并使用用户输入来保存日期和时间等内容以形成整个 URL,我已经对此进行了测试,它工作正常。

我还创建了一个小型 GUI,它接受两个输入并将它们显示在一个文本框中,这也可以正常工作。

我的 GUI 中有一个函数可以记录文本输入框中的文本。我想要的是输入的文本在另一个模块中用作我的用户输入。我是否需要将每个文本条目作为单独的调用返回?或者我可以保留这两个框,但访问每个函数调用发生时保存的变量?

def click():
    entered_text = textEntry.get()
    entered_text2 = textEntry2.get()
    output.delete(0.0,END)
    output.insert(END, entered_text +'\n'+ entered_text2)
    # This is the end of this function with no return

这是我想用来构成 URL 一部分的部分

def create_MY_URL():
    startDate = input("Enter intraday start date dd/mm/yyyy: ")
    startTime = input("Enter start time hh:mm: ")
    finishDate = input("Enter intraday finish date dd/mm/yyyy: ")
    finishTime = input("Enter finish time hh:mm: ")
    #there is plenty more of this function, it is returned at the end

那么我是否需要为每条信息调用两次 click() 才能将其用作“startDate”和“FinishDate”?

【问题讨论】:

点击函数中的stardate或finish date在哪里使用? 【参考方案1】:

这就是导入对您有帮助的地方,假设您有两个名为 gui.py 和 create_url.py 的 .py 文件,您可以将 create_url.py 中的功能导入到 gui.py 中

create_url.py

def create_MY_URL(start_date, end_date):  # accept the variables as input
    startDate = start_date  # assign the variables rather than accept an input
    startTime = input("Enter start time hh:mm: ")
    finishDate = end_date
    finishTime = input("Enter finish time hh:mm: ")
    #there is plenty more of this function, it is returned at the end

使用 gui.py,您可以导入 create_url,然后您可以调用已内置到 create_url.py 中的函数

import create_url  # name of .py file

def click():
    entered_text = textEntry.get()
    entered_text2 = textEntry2.get()
    output.delete(0.0,END)
    output.insert(END, entered_text +'\n'+ entered_text2)

    create_MY_URL(entered_text, entered_text2)  # call your function and pass your two inputs
    # create_MY_URL will do stuff here

在此示例中,两个 .py 文件都存在于同一目录中

【讨论】:

Meshi,这就像一个魅力!我已经在我的 GUI 文件的顶部有 import 语句,在更改大量变量名之后,我不断收到“create_MY_URL function not defined”错误,这让我很生气,所以我把它改成了 from create_URL import *它开始工作了。我也尝试过: from create_URL import create_MY_URL 但这也不起作用。也许我错过了函数名末尾的括号。成功了,非常感谢!我现在正在重新剥离它,包括更多的文本框。

以上是关于在 Python 中从一种方法调用变量到另一种方法的主要内容,如果未能解决你的问题,请参考以下文章

关于将输入数组从一种形状广播到另一种形状的正确方法

从一页切换到另一页

将 KDoc 文档从一种方法复制到另一种方法

从一种方法重定向到另一种方法

从一种方法打印数组到另一种方法

我们如何在 GWT 中从一页导航到另一页