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
  • Generate Parentheses

    Given n pairs of parentheses write a function to generate all combinations of well formed parentheses For example given
  • 括号组合的时间复杂度

    我尝试做经典问题来实现一种算法来打印 n 对括号的所有有效组合 我找到了这个程序 效果很好 public static void addParen ArrayList
  • 函数名两边的括号是什么意思?

    在我的项目源文件之一中 我找到了这个 C 函数定义 int foo int bar return foo bar 注意 旁边没有星号foo 所以它不是函数指针 或者是吗 递归调用发生了什么 在没有任何预处理器的情况下 foo的签名相当于 i
  • 惰性变量定义后括号做什么?

    我正在分析一些第三方代码 有一个看起来像这样的 惰性 var 语句 我想了解 计算属性 大括号后面的括号在做什么 lazy var defaults NSUserDefaults return standardUserDefaults re
  • 为什么按这个顺序列出 monad 组合?

    我正在阅读有关列表单子的内容并遇到 1 2 gt gt n gt a b gt gt ch gt return n ch 它产生 1 a 1 b 2 a 2 b 我是这样理解的 隐式括号是 1 2 gt gt n gt a b gt gt
  • 输出中的括号和引号

    有时 当我使用打印功能时 输出中会出现括号和引号 我正在使用 Python 3 4 并在 Mac 上的 Sublime Text 中编写代码 这是一个例子 Input a 2 print a a Output a 2 我只想显示 a 和 2
  • Python:使用()调用方法和不使用()调用方法有什么区别?

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

    我很难用 JavaScript 解决这个问题 给定一个由英文字母 标点符号 空格字符和括号组成的字符串 s 保证s中的括号形成规则的括号序列 您的任务是从最里面的括号开始反转每对匹配括号中的字符串 Example 对于字符串s a bc d
  • 批处理文件中括号内的转义括号

    这就是我正在尝试做的 echo This is some code that is echo Important to echo exactly as is echo Even if I use parenthesis echo for s
  • 使用Python提取嵌套括号中的句子

    我有多个 txt目录中的文件 这是一个示例one of my txt files kkkkk select xx xE PUT xx xxxx jdfjhf jhfjj from xxxx x xx L quit 1 xxxxx FROM
  • 如何删除 LISP 中的嵌套括号

    如何在 Common LISP 中递归地删除嵌套括号 例如 unnest a b c d e f g gt a b c d e f g unnest a b gt a b unnest a gt a Thanks 这就是我要做的 ql qu
  • setInterval 中的 JavaScript 函数

    我有以下代码 var foo 5 var los function alert foo setInterval los 1000 哪个工作正常 如果我将其更改为 var los function alert foo setInterval
  • JS中为什么对象要用括号括起来?

    给出以下示例 var foo root key1 Value1 key2 Value2 key3 Value3 与以下相比有什么区别 var foo root key1 Value1 key2 Value2 key3 Value3 在第一个
  • 如何使用正则表达式搜索带括号的字符串?

    我有一个 txt 文件 其中包含以下字符串 A 123 B 456 Ab 123 我想搜索Ab 123 在txt文件中 我尝试过的 re search r Ab 123 string 有 12 个具有特殊含义的字符 您可以使用以下命令转义到
  • 警告:“将‘D’的乘法及其转置括起来,以确保结果是埃尔米特式的。”

    正如您在上面的屏幕截图中看到的 我的 Matlab m 文件代码中有以下表达式 K P D D P 其中 P 是一个 nxn 矩阵 D 是一个 nx1 列向量 n 4 如果重要的话 为什么我会收到此警告消息 如果我在那里使用或不使用括号会发
  • 是否可以通过括号来防止死亡?

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

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

    我必须分割一个字符串 并且我想避免用括号内的逗号分割它 那么我该如何实现呢 Example string string1 sString1 sString2 ssString1 ssString2 string2 string3 resul
  • sqlalchemy如何在OR运算中使用AND?

    我需要做这个查询 SELECT FROM tbl member WHERE member type 1 AND member status 1 OR member type 2 and member status 2 我试过了 q sess

随机推荐

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

    当你定义一个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