当函数或方法调用中省略括号时,这意味着什么?

2024-03-02

我有这个示例代码:

class objectTest():
    def __init__(self, a):
        self.value = a

    def get_value(self):
        return self.value

a = objectTest(1)
b = objectTest(1)
        
print(a == b)
print(a.get_value() == b.get_value)
print(a.get_value() == b.get_value())
print(a.get_value == b.get_value)

显示的结果是:

False
False
True 
False

为什么这不会导致错误? get_value是一个方法,那为什么我们不用先调用它就可以这样使用呢?


See also: In Python, what does '<function at ...>' mean? https://stackoverflow.com/questions/19333598/


如前所述,函数和方法是第一类对象。你call通过在末尾添加一些圆括号(方括号)来表示它们。但看起来你想要更多的动力来解释为什么 python 甚至让我们这样做。为什么我们要关心函数是否是一流的?

有时您不想调用它们,而是想传递对可调用本身的引用。

from multiprocessing import Process
t = Process(target=my_long_running_function)

如果你在上面的后面加上括号,它会运行你的my_long_running_function在你的主线程中;几乎不是你想要的!你想要给予Process对您的可调用对象的引用,它将在新进程中自行运行。

有时您只想指定可调用对象并让其他东西...

def do_something(s):
    return s[::-1].upper()

map(do_something,['hey','what up','yo'])
Out[3]: ['YEH', 'PU TAHW', 'OY']

(map在本例中)填写其参数。

也许您只想将一堆可调用对象放入某个集合中,然后以动态方式获取您想要的对象。

from operator import *

str_ops = {'<':lt,'>':gt,'==':eq} # etc
op = str_ops.get(my_operator)
if op:
    result = op(lhs,rhs)

以上是将运算符的字符串表示形式映射到其实际操作的一种方法。

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

当函数或方法调用中省略括号时,这意味着什么? 的相关文章

  • 如何在 Ubuntu 上安装 Python 模块

    我刚刚用Python写了一个函数 然后 我想将其做成模块并安装在我的 Ubuntu 11 04 上 这就是我所做的 创建 setup py 和 function py 文件 使用 Python2 7 setup py sdist 构建分发文
  • 使用 Django 的 post_save() 信号

    我有两张桌子 class Advertisement models Model created at models DateTimeField auto now add True author email models EmailField
  • 如何用 python 和 sympy 解决多元不等式?

    我对使用 python 和 Sympy 还很陌生 并且遇到了使用 sympy 解决多元不等式的问题 假设我的文件中有很多函数 如下所示 cst sqrt x 2 cst exp sqrt cst x 1 4 log log sqrt cst
  • 无法包含外部 pandas 文档 Pycharm v--2018.1.2

    我无法包含外部 pandas 文档Pycharm v 2018 1 2 例如 numpy gt http docs scipy org doc numpy reference generated module name element na
  • Python:当前目录是否自动包含在路径中?

    Python 3 4 通过阅读其他一些 SO 问题 似乎如果moduleName py文件位于当前目录之外 如果要导入它 必须将其添加到路径中sys path insert 0 path to application app folder
  • 反加入熊猫

    我有两个表 我想附加它们 以便仅保留表 A 中的所有数据 并且仅在其键唯一时添加表 B 中的数据 键值在表 A 和 B 中是唯一的 但在某些情况下键将出现在表 A 和 B 中 我认为执行此操作的方法将涉及某种过滤联接 反联接 以获取表 B
  • 如何为多组精灵创建随机位置?

    我尝试使用 blit 和 draw 方法进行 for 循环 并为 PlayerSprite 和 Treegroup 使用不同的变量 for PlayerSprite in Treegroup surface blit PlayerSprit
  • Python 中的这种赋值方式叫什么? a = b = 真

    我知道关于元组拆包 http docs python org tutorial datastructures html tuples and sequences但是当一行中有多个等号时 这个赋值被称为什么 阿拉a b True 它总是让我有
  • Python While 循环,and (&) 运算符不起作用

    我正在努力寻找最大公因数 我写了一个糟糕的 运算密集型 算法 它将较低的值减一 使用 检查它是否均匀地划分了分子和分母 如果是 则退出程序 但是 我的 while 循环没有使用 and 运算符 因此一旦分子可整除 它就会停止 即使它不是正确
  • Python unicode 字符代码?

    有没有办法将 Unicode 字符 插入 Python 3 中的字符串 例如 gt gt gt import unicode gt gt gt string This is a full block s unicode charcode U
  • 使用循环将对象添加到列表(python)

    我正在尝试使用 while 循环将对象添加到列表中 基本上这就是我想做的 class x pass choice raw input pick what you want to do while choice 0 if choice 1 E
  • 负整数的Python表示

    gt gt gt x 4 gt gt gt print b format x x 4 100 gt gt gt mask 0xFFFFFFFF gt gt gt print b format x mask x mask 4294967292
  • 如何逐像素绘制正方形(Python,PIL)

    在空白画布上 我想使用 Pillow 逐像素绘制一个正方形 我尝试使用 img putpixel 30 60 155 155 55 绘制一个像素 但它没有执行任何操作 from PIL import Image def newImg img
  • python中的sys.stdin.fileno()是什么

    如果这是非常基本的或之前已经问过的 我很抱歉 我用谷歌搜索但找不到简单且令人满意的解释 我想知道什么sys stdin fileno is 我在代码中看到了它 但不明白它的作用 这是实际的代码块 fileno sys stdin filen
  • 是否可以写一个负的python类型注释

    这可能听起来不合理 但现在我需要否定类型注释 我的意思是这样的 an int Not Iterable a string Iterable 这是因为我为一个函数编写了一个重载 而 mypy 不理解我 我的功能看起来像这样 overload
  • Plotly:如何避免巨大的 html 文件大小

    我有一个 3D 装箱模型 它使用绘图来绘制输出图 我注意到 绘制了 600 个项目 生成 html 文件需要很长时间 文件大小为 89M 这太疯狂了 我怀疑可能存在一些巨大的重复 或者是由单个项目的 add trace 方法引起的 阴谋 为
  • asyncio - 多次等待协程(周期性任务)

    我正在尝试为异步事件循环创建定期任务 如下所示 但是我收到 RuntimeError 无法重用已等待的协程 异常 显然 asyncio 不允许等待相同的可等待函数 如中讨论的这个错误线程 https bugs python org issu
  • CSV 在列中查找最大值并附加新数据

    大约两个小时前 我问了一个关于从网站读取和写入数据的问题 从那时起 我花了最后两个小时试图找到一种方法来从输出的 A 列读取最大日期值 将该值与刷新的网站数据进行比较 并将任何新数据附加到 csv 文件而不覆盖旧的或创建重复项 目前 100
  • 使用 Keras 和 fit_generator 绘制 TensorBoard 分布和直方图

    我正在使用 Keras 使用 fit generator 函数训练 CNN 这似乎是一个已知问题 https github com fchollet keras issues 3358TensorBoard 在此设置中不显示直方图和分布 有
  • 如何在SqlAlchemy中执行“左外连接”

    我需要执行这个查询 select field11 field12 from Table 1 t1 left outer join Table 2 t2 ON t2 tbl1 id t1 tbl1 id where t2 tbl2 id is

随机推荐

  • np.ndarray`“is”中的奇怪行为

    is 内置运算符显示元素的奇怪行为np ndarray 尽管右侧和左侧的 id 相同 但 is 运算符返回 False 此行为特定于np ndarray a np array 1 b a view print id a 0 id b 0 T
  • postgres 使用 join 更新

    我正在尝试使用 ht 中的数据更新表 tr 两者都有几乎相同的列 所以为了测试我运行了这个查询 SELECT FROM tr a RIGHT OUTER JOIN ht b USING date name ft WHERE ft IS NO
  • 判断设备是否有触摸屏

    我的应用程序可以在标准手机上运行 但它也可以在 Android 播放器上运行 我通过 HDMI 将其连接到电视并使用鼠标进行导航 有没有办法以编程方式确定设备是否支持触摸屏 以便我可以区分两种导航方式 I tried this http d
  • 从项目 azure devops REST API 获取所有工作项

    我正在使用 Azure Devops API 通过 AWS Lambda node js 创建通知机器人 此时 我需要检查每个任务工作项是否附加到父用户故事 第一步是获取 给定 项目上的所有任务工作项 对于这一步 我正在阅读 azure d
  • 最坏情况时间复杂度分析伪代码

    有人可以帮我分析这个伪代码的时间复杂度吗 我正在寻找最坏情况的复杂度 但我无法弄清楚它是 O n 4 O n 5 还是完全其他的东西 如果您能详细说明您是如何解决这个问题的 我们将不胜感激 sum 0 for i 1 to n do for
  • 在构造函数中创建一个指针,指向 C++ 中类的实例

    我对这些 C 指针有点困惑 我想知道是否可以在构造函数内创建一个指向类实例的指针 以下行中的内容 class Room public Room Room private Room ptrToSelf Room Room ptrToSelf
  • zeppelin hive 解释器抛出 ClassNotFoundException

    我已经部署了zeppelin 0 6并在Jdbc解释器下配置了hive 尝试执行 hive show databases Throws org apache hive jdbc HiveDriver 类 java lang ClassNot
  • 如何访问封装在类中的未命名“枚举类”?

    class A public enum class HELLO WORLD 众所周知 在一个class 声明一个简单的enum 而不是enum class 是一个更好的主意 因为它已经用class鉴别 但上面的说法仍然是有效的C 0x签名
  • 将字符串写入文本文件

    我正在将日志保存到 SD 卡上的 txt 文件中 但是一旦保存了两行 它就会覆盖它并重新开始 这是我的代码 public static String getTimestamp try SimpleDateFormat dateFormat
  • 从Python中的一行中提取特定的子字符串

    我有一个包含多行格式的文件 格式如下 DIV ID 0X78800009 EXT LOS ANGELES TY STANDARD OWN 0X74400002 ABBR LA 我需要提取 EXT 值 但只提取引号中的部分 我目前正在使用这个
  • 在 Spark 上执行多个 SQL 查询

    我在文件 test sql 中有一个 Spark SQL 查询 CREATE GLOBAL TEMPORARY VIEW VIEW 1 AS select a b from abc CREATE GLOBAL TEMPORARY VIEW
  • Android 蓝牙 connect() 抛出错误

    我有一个项目要求 其中我们有一个包含两个组件的产品 一个 Android 平板电脑和一个 PCB 包含 RN42 蓝牙芯片 这两个组件位于塑料外壳内 因此总是彼此靠近 这两个组件设备最初会配对一次 因此配对信息将永远存在于平板电脑中 Pro
  • 无法在Python3中导入sqlite3

    我无法在 Python 版本 3 5 0 中导入 sqlite3 模块 这是我得到的 gt gt gt import sqlite3 Traceback most recent call last File
  • Mysql 5有管理分层数据的程序吗?

    我使用嵌套集模型来保存分层数据 http mikehillyer com articles managing hierarchical data in mysql 进入数据库表 我感兴趣的是 MySQL 是否内置支持添加 删除节点 或者我必
  • 使用 javascript 按值查找复选框

    我使用这个 JavaScript 来查找我需要的复选框并选中它们
  • 使用 JDK 1.6 时,我的 Web 应用程序中是否需要 stax-api-1.0.x?

    我目前正在开发一个使用 Jersey 进行 REST 的 Web 应用程序 我使用maven stax api 1 0 1和1 0 2都被拉入我的web inf lib中 我以为stax api是JDK1 6的一部分 为什么这些 JAR 包
  • 在 Mac 上的 bash 中从 xml 中提取值

    我需要从此 xml 中提取名称值 产品查找器 文件 config xml
  • ckeditor jquery 插件和模糊事件

    我目前正在使用 ckeditor 并且我正在使用该编辑器的 jquery 插件 以便在文档准备好时实例化所有内容 我需要做的是为正在创建的 ckeditor 实例设置一个模糊事件 下面的代码是我用来实例化 ckeditor 的代码 text
  • 在 Android TextView 中显示 unicode 字符

    互联网上有很多关于这个主题的帖子 但是没有一个能够隔离并解决问题 我试图使用 TextView 显示存储在 SQLite 数据库中的一些特殊 UTF 8 编码符号 但它显示的只是方框 我明白这意味着没有安装正确的字体 但是当我在 Mac 上
  • 当函数或方法调用中省略括号时,这意味着什么?

    我有这个示例代码 class objectTest def init self a self value a def get value self return self value a objectTest 1 b objectTest