You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中对象与方法名后括号的作用解析

关于Python中括号在对象和方法名后作用的详解

嘿,这个问题问得特别到位——刚摸Python面向对象的时候,括号的用法确实很容易让人犯迷糊,我结合你的例子给你拆解明白:

一、对象名后的括号:类实例化 vs 引用类本身

你提到的book = Workbook()和直接写book = Workbook是完全不同的两个操作:

  • Workbook是一个类,可以理解成制作工作簿的“模板”,它本身是一个对象,但不是你能直接用来操作的具体工作簿。
  • Workbook()是调用这个类的构造函数(背后是Python自动执行的__init__方法),相当于用模板“造”出一个具体的工作簿实例。book变量保存的就是这个实实在在的、可以操作的工作簿对象。

举个直观的例子:如果直接写book = Workbook,你后续没法用它来新建工作表或读写数据,因为它只是模板本身;但book = Workbook()之后,你就能调用book的各种方法来操作这个具体的工作簿了。

二、方法名后的括号:调用方法 vs 引用方法对象

方法是类或实例中定义的函数,加不加括号的区别也很关键:

  • b.get_sheet_names():这里的括号表示调用这个方法,让它执行对应的逻辑(比如返回当前工作簿的所有工作表名称列表),你得到的是这个方法执行后的返回值。
  • 如果写成b.get_sheet_names(不带括号),你得到的是这个方法本身的引用——它就像一个“待执行的功能”,你可以把它赋值给另一个变量,比如get_names = b.get_sheet_names,之后再写get_names()才会真正执行这个功能,拿到结果。

简单说,括号就是“触发执行”的信号:对于类,触发实例化;对于方法,触发功能执行。

总结一下核心概念

  • 类:是定义对象属性和行为的模板,比如Workbook。
  • 实例:用类创建出来的具体对象,比如Workbook()得到的book。
  • 方法:绑定在类或实例上的函数,需要加括号才能执行并返回结果。

内容的提问来源于stack exchange,提问作者engrken

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:19:10