Python:使用()调用方法和不使用()调用方法有什么区别?

2023-12-04

这一定是非常基本和明显的东西,因为我无法通过谷歌或在这里找到答案......

当我调用方法时,Python 中的括号有什么区别?

带有 pygame 和括号的示例代码:

import pygame
import sys

pygame.init()

screen = pygame.display.set_mode((640, 480))

running = True

while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()

    pygame.display.update()

当我单击窗口的十字时,它会关闭,sys.exit() 是回溯中调用的最后一个。

当我把它改成这样时:

import pygame
import sys

pygame.init()

screen = pygame.display.set_mode((640, 480))

running = True

while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit

    pygame.display.update()

它仍然退出,但在回溯中的最后一项显示错误。

当我在这里学习 Panda3D 教程时,我遇到了这个问题:http://www.mygamefast.com/volume1/

在几个问题中(例如,在“ArcadeFlightGame”类的“keyboardSetup”方法中:http://www.mygamefast.com/volume1/issue5/4/)他调用“sys.exit”而不是“sys.exit()”,游戏正确终止。如果我将其更改为“sys.exit()”,则会在启动时导致一些错误。

这似乎非常基本,以至于没有人在任何地方真正解释它......如果有人能在这方面启发我一点,我将非常感激:/


如果不使用括号,则不会调用该函数。就是这么简单。sys.exit绝对什么也不做,sys.exit()调用该函数。

话虽这么说,有时不带括号的函数名称将被传递给其他函数,或绑定到事件。在这种情况下,不使用括号,因为您告诉其他函数或事件“在适当的时间调用它”。

例如,在您链接到的教程中是这行代码:

self.accept("escape", sys.exit)

This is not调用 sys.exit。相反,它告诉事件系统“当您检测到退出键时,调用此函数”。调用此代码时,sys.exit is not称为,而是挂号的稍后再打电话。当按下转义键时,底层框架实际上会使用括号调用该函数。

因此,立即调用函数(使用()) and 注册一个函数(仅使用名称,不()).

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

Python:使用()调用方法和不使用()调用方法有什么区别? 的相关文章

  • [leetcode]22. Generate Parentheses

    Given n pairs of parentheses write a function to generate all combinations of well formed parentheses For example given
  • Python:双括号有什么作用?

    谁能告诉我为什么这里的括号要加倍 self items append module item 内括号创建一个tuple gt gt gt type a b
  • C++11 lambda 表达式末尾的括号

    我对 C 11 lambda 遇到的一些示例感到困惑 例如 include
  • 惰性变量定义后括号做什么?

    我正在分析一些第三方代码 有一个看起来像这样的 惰性 var 语句 我想了解 计算属性 大括号后面的括号在做什么 lazy var defaults NSUserDefaults return standardUserDefaults re
  • 正则表达式缺少括号

    我是否正确地认为正则表达式不能用于检测缺失的括号 因为无法计算对数 使用 JavaScript 我有大约一千个字符串 这些字符串已被截断 需要手动编辑 我希望能够使用代码将这个列表缩小到需要注意的范围 字符串可以被认为是以下形式 这个很好
  • 使用堆栈算法进行括号/括号匹配

    例如 如果括号 方括号在以下内容中匹配 等等 但如果括号 方括号不匹配 则应返回 false 例如 等等 您能检查一下这个代码吗 public static boolean isParenthesisMatch String str Sta
  • 调用子函数时不能使用括号 - VBScript

    我正在用 VBScript 编写这段代码 我以前从未使用过它 我写了这个 Replace strContent st arr k i 1 它给了我一个 调用子程序时不能使用括号 的问题 有人可以帮忙吗 我尝试过在线搜索 但没有任何帮助 谢谢
  • C# 正则表达式用于匹配嵌套括号内的特定文本

    我有这些代码行用于括号之间的运算符 string filtered Regex Replace input string Empty var result filtered Split new StringSplitOptions Remo
  • 类型转换 Math.random?

    浏览了这个网站上的问题 但找不到我正在寻找的关于类型转换的答案Math random 方法从 double 到 int 我的问题是 为什么Math random只返回不带括号的 0 而当它包含在括号内时返回随机数 代码的第一部分返回 0 i
  • 所有 Unicode 左括号/右括号的列表

    每个 Unicode 括号字符的列表是什么 包括 例如 lt gt 搜索 Unicode 字符的好方法是什么 有一个纯文本数据库有关 Unicode 联盟提供的每个 Unicode 字符的信息 格式描述于统一码附件 44 主要信息包含在Un
  • 将参数括在括号中时,Ruby Kernel.raise 方法会引发错误

    我喜欢用括号括起来的方法参数 这是对 Pascal 的怀念 在清理代码时 如果我发现没有它的方法参数 我会立即将它们括起来 今天 它导致我的工作代码抛出错误 尽管根据文档我的语法看起来没问题 Kernel raise 的文档具有以下格式 O
  • 在 PostgreSQL 中对 AND 和 OR 条件进行分组

    我总是在 sql 查询中使用括号 但我有例子 DELETE FROM prog WHERE prog start gt 1 AND prog start lt 2 OR prog end gt 1 AND prog end lt 2 是否等
  • 批处理文件中括号内的转义括号

    这就是我正在尝试做的 echo This is some code that is echo Important to echo exactly as is echo Even if I use parenthesis echo for s
  • 获取方括号的内容,避免嵌套括号

    第一次发帖 来自 Google 的长期访客 我正在尝试提取一些方括号的内容 但是我遇到了一些麻烦 我已经让它适用于圆括号 如下所示 但我看不出应该如何修改它以适用于方括号 我本以为在这个例子中用圆形替换方形 反之亦然应该可行 但显然不行 它
  • 为什么是语句(j++);禁止?

    下面的代码是错误的 看一下关于ideone http ideone com vSoRsM public class Test public static void Main int j 5 j if we remove the and th
  • 如何使用正则表达式搜索带括号的字符串?

    我有一个 txt 文件 其中包含以下字符串 A 123 B 456 Ab 123 我想搜索Ab 123 在txt文件中 我尝试过的 re search r Ab 123 string 有 12 个具有特殊含义的字符 您可以使用以下命令转义到
  • 括号配对 ({}[]()<>) 问题

    我希望能够将字符串中的所有括号配对 如果它们没有配对 那么它们会得到索引号和 False 看起来它一遍又一遍地重复一些值 即 cl pop 1 我试图找出问题出在哪里 但无论我如何努力 我都看不到它 所以我问是否有人帮助我找到错误 甚至改进
  • C中的括号可以改变按位运算的操作数的结果类型吗?

    我通过静态分析工具输入了以下代码 u1 u1 u2 OK u1 u1 u2 u3 NOT OK u1 u1 u2 10 NOT OK u1 u1 u2 10U NOT OK u1 unsigned char u1 u2 10U OK u1
  • 是否可以通过括号来防止死亡?

    有时 我会编写一些带有比我喜欢的更多括号的代码 if new Day new Date millisecondsPerDay 75 instanceof oldDay Bonus points if that condition made
  • python 正则表达式中括号的奇怪行为

    我正在编写一个 python 正则表达式 它可以在文本文档中查找引用的字符串 从黑匣子中记录的航空公司飞行员的引用 我首先尝试编写具有以下规则的正则表达式 返回引号之间的内容 如果以 single 打开 则仅在以 single 关闭时返回

随机推荐

  • 为什么不能全局定义结构成员?

    当你定义一个struct在全局范围内 为什么不能在全局范围内定义结构成员 除了使用初始化语法之外 我从 clang 得到的错误是 system 1 有一个 未知的类型名称 如果您在函数中定义结构体 例如main 那么您就不会遇到任何问题 t
  • 如何从字符串中解析公式?

    例如 我有字符串 data1 data2 data3 data4我希望我的小程序获取这个字符串并执行如下操作 int main int argc char argv double data1 1 0 double data2 2 0 dou
  • 从 matplotlib heatplot 中删除空格

    I have a heatplot in matplotlib for which I want to remove the whitespace to the north and east of the plot as shown in
  • 在 macOS Catalina 上安装 Ruby 2.0.0 的问题

    我正在运行 以解决在装有 macOS Catalina 版本 10 15 7 的新 MacBook 上安装 Ruby 2 0 0 的问题 起初我用rvm安装了Ruby 但不起作用 我发现这是因为Catalina的默认终端是ZSH而不是Bas
  • 使用 objectify 为应用程序引擎执行 DISTINCT 查询

    给定以下两个表 如何在 objectify 中编写 执行以下查询 SELECT DISTINCT authorId FROM Book ORDER BY 日期降序限制 30 Entity Book Id private Long bookI
  • 代表用户在朋友的墙上发帖

    我正在编写一个 Facebook 应用程序 需要代表用户在朋友的墙上发布内容 但超出了画布应用程序的范围 我有以下内容 App ID 应用秘密 发布者的publish stream权限 理论上这应该足以做我想做的事 我目前正在做的事情 使用
  • Android 在 RecyclerView 中添加/替换项目

    我知道已经有很多关于这个主题的线程 但到目前为止 没有一个给定的解决方案对我有用 我正在尝试添加或更新某个项目RecyclerView 到目前为止 这是我的代码 主要活动 private MyListItemAdapter mAdapter
  • 优化 MATLAB 代码

    此代码需要非常长的时间才能运行 超过 10 分钟 有什么方法可以优化它 使其在一分钟内完成吗 clear all for i 1 1000000 harmonicsum 0 lhs 0 for j 1 i compute harmonic
  • C++ 中有没有像 python 那样按名称传递参数的方法? [复制]

    这个问题在这里已经有答案了 C 中有没有像 python 那样按名称传递参数的方法 例如我有一个函数 void foo int a int b 1 int c 3 int d 5 我可以这样称呼它吗 foo 5 a c 5 d 8 Or f
  • EC2 实例加载我的用户数据脚本但不运行它

    Code usr bin env python import boto ec2 conn ec2 boto ec2 connect to region us east 1 access keys are environment vars m
  • java getRuntime().exec 需要 UAC 的 exe

    所以我们有一个作为 Windows 服务运行的 java 进程 它需要执行一个命令Runtime getRuntime exec command 它执行的命令需要UAC 这是在 Windows Server 2008 上 听起来您无法为单个
  • Android模拟器运行简单项目时出错

    当我将 Android 模拟器配置为版本 4 4 2 时 模拟器只是挂起并且无法通过 Android 徽标 当我检查 Eclipse 中的控制台时 出现以下错误 错误 factory client recv 中未知的相机工厂查询名称 and
  • 在 html 页面的 iframe 内显示警告框

    有一个简单的 HTML 页面 名为 abc html 现在 abc html 有一个名为 单击我 的按钮 此页面 abc html 也有一个 iframe 其 id 为 myframe 现在我想要的是 当单击 单击我 按钮时 名为 myfr
  • 如何使用CLLocationManager监控20多个区域

    我想要使 用以下方式监控大约 2000 个区域 仅限入口 CLLocationManager 我有一个函数可以找到 20 个最近的商店 Store是一个继承自的类NSObject并有一个CLLocationCoordinate2D属性名为g
  • 如何将表单数据作为 JSON 发布?

    我正在尝试为我们正在进行的一个小组项目构建一个注册站点 但不知道如何将表单数据作为 json 发送 我尝试了很多谷歌搜索并更改了代码 但似乎没有任何效果 我遇到的问题是 当我按下提交按钮时 我从 API 收到如下错误 输入无效 我认为原因是
  • 什么时候不应该使用 Java 中的 static 关键字?

    什么时候在 Java 方法签名上使用 static 关键字被认为是不好的做法 如果一个方法根据某些参数执行一个函数 并且不需要访问非静态的字段 那么您不是总是希望这些类型的方法是静态的吗 在大型 Java 应用程序中您将遇到的两个最大的弊端
  • 在 MVC / ASP.NET 中发布包含列表的模型

    我知道怎么做postASP NET 中表单的对象列表 但假设我想要post同时还有其他一些值 有没有办法有一个表格 像这样
  • 如何在线程内接收 WM_POWERBROADCAST?

    我已经绞尽脑汁一天多了 浏览了大量的资源 试图弄清楚如何接收WM POWERBROADCAST来自线程内的 Windows 消息 目前 我正在使用AllocateHWnd WndMethod 独立组件内部 当我在标准 VCL Forms 应
  • 在 UITableView 中,“visibleCells”的委托是什么?

    当单元格进出设备屏幕时 我希望我的 viewController 确切地知道什么进来了 什么出去了 有没有办法做到这一点 不存在仅适用于 可见单元格 的委托方法 当单元格离开屏幕时 不会调用任何内容 当细胞变得可见时 实际上什么也没有 有的
  • Python:使用()调用方法和不使用()调用方法有什么区别?

    这一定是非常基本和明显的东西 因为我无法通过谷歌或在这里找到答案 当我调用方法时 Python 中的括号有什么区别 带有 pygame 和括号的示例代码 import pygame import sys pygame init screen