Python:如何在其他函数中使用一个函数中的命名变量

2023-12-09

我是一名新手程序员,试图使用 Python 3.3.2 编写一个程序,该程序具有main()调用的函数function1(),然后循环function2() and function3().

我的代码通常如下所示:

def function1():
    print("hello")

def function2():
    name = input("Enter name: ")

def function3():
    print(name)

def main():
    function1()
    while True:
        funtion2()
        function3()
        if name == "":
            break

main()

目前,当我运行程序并输入名称时出现以下错误:

NameError: global name 'name' is not defined

我明白这是因为name只定义在function2()。我该如何做到这一点name被定义为“全局名称”,或者以某种方式能够在内部使用它function3() and main().

提前致谢。


不要尝试将其定义为全局变量,而是返回它:

def function2():
    name = input("Enter name: ")
    return name

def function3():
    print(function2())

如果您想使用函数中定义的变量在所有函数中可用,请使用类:

class A(object):

   def function1(self):
       print("hello")

   def function2(self):
       self.name = input("Enter name: ")

   def function3():
       print(self.name)

   def main(self):  
       self.function1()
       while True:
          funtion2()
          function3()
          if not self.name:
              break

A().main()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python:如何在其他函数中使用一个函数中的命名变量 的相关文章

随机推荐

  • 如何在C中使用tlb文件?

    tlb 文件 使用 regasm 是由 dll 使用 c 代码 制成的 我可以使用 import 在 c 中使用它 一切正常 有没有办法 我可以用C语言来使用它 我刚刚发现 import 是 C 特定的 那么 有人可以告诉我如何在我的 C
  • 使用 django-extensions 插件在 jupyter 笔记本中打印 sql 查询

    是否可以像此命令一样显示 SQL 查询 python manage py shell plus print sql但在 Jupyter Notebook 中呢 我尝试了这个命令python manage py shell plus note
  • 从C盘加载Java代码中的图像

    我是 Java 新手 我只是想加载图像作为背景JFrame 我想做的是从 C 驱动器 这不是我的工作区 获取图像 所以我做了什么Board java ImageIcon i new ImageIcon C image png img i g
  • 我的第一个应用程序在按下按钮时崩溃

    我多次尝试根据developers android上的MyFirstApp教程制作应用程序 https developer android com training basics firstapp index html 工作 我正在使用 S
  • 将 Rails 应用程序部署到 Heroku 时出现语法错误:ExecJS::RuntimeError: SyntaxError: Unexpected character

    我正在尝试将我的应用程序部署到 Heroku 但它向我抛出此错误 ExecJS RuntimeError SyntaxError 意外字符 行 14577 第 33 位置 440811 我认为咖啡脚本 javascript 有问题 我已经删
  • 我如何在这里访问数组总和?

    我有一个数据集 大致如下所示 var dataset apples x 1 y 5 x 2 y 4 x 3 y 2 x 4 y 7 x 5 y 23 oranges x 1 y 10 x 2 y 12 x 3 y 19 x 4 y 23 x
  • 将类型为 Any 的 Swift Encodable 类转换为字典

    与my previous 问题 我决定子类化NSArrayController以达到预期的行为 class NSPresetArrayController NSArrayController override func addObject
  • iPhone 自动完成搜索示例

    有人可以指导我如何在 iPhone 上实现 自动完成 搜索界面吗 我假设我需要使用 NSTimer 定期检查输入的内容 然后将该部分字符串提交到我的数据源 然后显示这些内容 我需要将其与返回 JSON 的现有 Web 服务连接起来 最好有教
  • 如何从 PostgreSQL 的子表中选择数据?

    在 PostgreSQL 9 4 中 如何检索 json 对象 如下所示 parentTableFirstProp string parentToChildReference childTableFirstProp another stri
  • 将自定义 Chef 推送作业添加到 Windows 白名单

    我正在尝试将推送作业添加到推送客户端的 Windows 白名单中 当我用刀进行搜索时 它会在 Windows 节点的白名单中显示自定义作业 当我尝试运行它时 作业立即失败 并且在 Windows 端它说该命令不在白名单中 我在GitHub上
  • 在 Java 中从文件中完全读取对象流的最佳方法是什么?

    我正在创建一个可能很长的对象日志 并且不想在写入文件之前将它们全部保留在内存中 因此我无法将对象的序列化集合写入文件 我试图找出在日志记录完成后读取整个对象流的 最佳 方式 我注意到以下方法不起作用 FileInputStream fis
  • 为什么我需要重写 Java 中的 equals 和 hashCode 方法?

    最近我读到了这篇文章开发者作品文档 该文档主要是关于定义hashCode and equals 有效且正确 但是我无法弄清楚为什么我们需要重写这两种方法 我如何决定有效地实施这些方法 Joshua Bloch 在 Effective Jav
  • 矩阵乘法在 MATLAB 和 NUMPY(?) 中产生不同的值[重复]

    这个问题在这里已经有答案了 这是矩阵 gt gt x 2 7 5 9 2 8 3 1 6 10 4 7 3 10 1 6 7 10 1 8 2 8 2 5 9 Matlab给我 gt gt mtimes x x ans 124 124 94
  • 使用 Maven/Cucumber/Serenity 重新运行失败的场景

    有没有人使用 Maven Surefire 插件或任何其他机制来重新运行失败的场景 我将 Cucumber 与 Serenity 和 Maven 一起使用 我尝试了以下不同的方法 以便在没有任何手动干预的情况下重新运行失败的场景例如 如果
  • 如何使用 Java 解压目录中所有受密码保护的 zip 文件

    我是java新手 试图编写一个程序来解压缩目录中的所有受密码保护的zip文件 我能够解压缩所有普通的zip文件 没有密码 但我不确定如何解压缩受密码保护的文件 注意 所有 zip 文件具有相同的密码 import java io Outpu
  • C 函数中的冒号代表什么?

    冒号的这种用法叫什么 以下代码摘自书中学习核心音频 int main int argc const char argv cleanup AudioQueueDispose queue true AudioFileClose player p
  • 临时局部变量的命名约定

    在本地函数中命名临时变量的标准方法是什么 让我向您说明我正在做的事情 我得到一个指向结构的指针 因此我想在本地存储其成员之一以避免取消引用 然后将任何修改分配回指针 更具体地说 struct Foo double m d void func
  • 使用python从MAC获取IP地址

    我的本地网络中有一个设备并且知道它的 MAC 地址 它通过 DHCP 自动获取 IP 地址 我想获得这个IP 我不想使用 nmap 但 scapy 就可以了 因为我是从 kivy 应用程序导入的 I found from scapy all
  • Codeigniter 3 中禁止 POST url 403

    您好 专家们 您能给我一个建议吗 为什么我在当前在本地主机上运行的代码点火器上收到此 403 禁止消息 403 禁止 过程是这样的 我使用 ajax 来轻松 顺利地访问和检索从模型 控制器到视图的数据 下图是我在视图到控制器中的代码 div
  • Python:如何在其他函数中使用一个函数中的命名变量

    我是一名新手程序员 试图使用 Python 3 3 2 编写一个程序 该程序具有main 调用的函数function1 然后循环function2 and function3 我的代码通常如下所示 def function1 print h