当前位置: 首页 > news >正文

[Python] 区分方法 函数

文章目录

  • 函数(Function)与方法(Method)的区别
    • 一、函数(Function)
      • 1 定义
      • 2 示例
      • 3 特点
    • 二、方法(Method)
      • 1 定义
      • 2 示例
      • 3 特点
    • 三、函数 VS 方法
    • 四、Python 中的三种方法类型
      • 1 示例:
    • 五、总结

函数(Function)与方法(Method)的区别

在 Python 中,函数和方法 都是用于封装可重用代码的结构,但它们的使用场景和定义方式不同。

一、函数(Function)

1 定义

  • 使用 def 关键字定义。
  • 不属于任何类,可以独立存在。

2 示例

def greet(name):print(f"Hello, {name}!")greet("Alice")

3 特点

  • 定义位置:可以在模块层级、脚本中直接定义
  • 调用方式: 直接通过函数名调用:greet("Alice")
  • 参数:没有隐式传入的 self 或 [cls]

二、方法(Method)

1 定义

  • 定义在 类内部 的函数。
  • 第一个参数通常是 self(实例方法)或 [cls]

2 示例

class Person:def __init__(self, name):self.name = namedef greet(self):print(f"Hello, I'm {self.name}")p = Person("Bob")
p.greet()

3 特点

  • 定义位置 :必须写在类内部
  • 调用方式:通过对象调用:p.greet(),自动传入 self
  • 参数: 第一个参数通常是 self,表示对象本身

三、函数 VS 方法

类比函数方法
功能独立功能块属于某个对象的行为
举例len(list)print()list.append(1)str.upper()
谁拥有它?没有“主人”属于某个类或对象

四、Python 中的三种方法类型

类型第一个参数使用场景
实例方法self最常见,操作对象数据
类方法cls操作类本身,如构造器工厂
静态方法工具函数,逻辑与类/对象无关

1 示例:

class MyClass:@classmethoddef class_method(cls):print("I'm a class method")@staticmethoddef static_method():print("I'm a static method")# 调用类方法
MyClass.class_method()# 调用静态方法
MyClass.static_method()

五、总结

  • 函数 是独立存在的,不依附于任何类或对象;
  • 方法 是定义在类中的函数,必须通过对象或类来调用;
  • 在类中写的 def xxx(self): ... 都是方法;
  • 在模块顶层写的 def xxx(): ... 是函数。
http://www.lryc.cn/news/583615.html

相关文章:

  • 深度解析:将SymPy符号表达式转化为高效NumPy计算函数的通用解决方案
  • Git系列--3.分支管理
  • Python管理咨询数据可视化实战:收入分布与顾问利用率双轴对比图表生成脚本
  • 零基础上手 Amazon DynamoDB:NoSQL 数据库服务的核心概念与快速搭建指南
  • SQL Server 2008R2 到 2012 数据库迁移完整指南
  • Redis-哨兵选取主节点流程
  • CVE-2025-32463复现
  • AI进化论03:达特茅斯会议——AI的“开宗立派”大会
  • SpringBoot实现MCP
  • Git版本控制完全指南:从入门到实战(简单版)
  • 【LeetCode207.课程表】以及变式
  • Flutter基础(前端教程⑨-图片)
  • 「macOS 系统字体收集器 (C++17 实现)」
  • JavaScript对象的深度拷贝
  • 全球发展币GDEV:从中国出发,走向全球的数字发展合作蓝图
  • 【RK3568+PG2L50H开发板实验例程】FPGA部分 | DDR3 读写实验例程
  • 【学习笔记】OkHttp源码架构解析:从设计模式到核心实现
  • 【Java】【力扣】【字节高频】3.无重复字符的最长字串
  • 便捷的电脑自动关机辅助工具
  • Deepseek搭建智能体个人知识库
  • yolo8实现目标检测
  • 操作系统核心技术剖析:从Android驱动模型到鸿蒙微内核的国产化实践
  • Day 56
  • EPLAN 电气制图(六):结构盒与设备管理器核心概念(基础知识选看)
  • Linux操作系统之进程间通信:管道概念
  • EF提高性能(查询禁用追踪)(关闭延迟加载)
  • 神经网络初步学习3——数据与损失
  • 如何选择时序数据库:关键因素与实用指南
  • HCIP(综合实验)
  • 备受期待的 MMORPG 游戏《侍魂R》移动端现已上线 Sui