首页 > 其他分享 >【补充】函数和方法的区别

【补充】函数和方法的区别

时间:2023-07-31 21:57:58浏览次数:36  
标签:调用 函数 区别 补充 对象 add 或类 方法

【补充】函数和方法的区别

  • 在编程中,函数和方法是两个相关但又有区别的概念。

【1】函数

  • 函数是一段可以重复使用的代码块,它接受输入参数并产生输出结果。
  • 函数通常独立于任何特定的对象或类,并可以在程序的不同位置被调用和执行。
  • 函数可以有返回值,也可以没有返回值。

【2】方法

  • 方法是与特定对象或类关联的函数。
  • 它是一个属于某个类或对象的函数,用于描述该类或对象的行为。
  • 方法可以读取和修改类或对象的属性,也可以执行与对象相关的操作。
  • 方法与对象或类之间存在着紧密的耦合关系,必须通过对象或类来调用和执行。

【3】函数和方法之间区别

  • 所属关系:

    • 函数可以独立存在

    • 而方法必须依赖于对象或类存在。

  • 调用方式:

    • 函数可以直接调用

    • 而方法必须通过对象或类来调用。

  • 参数传递:

    • 函数的参数是显式传递的

    • 方法的第一个参数通常是隐式传递的,表示调用该方法的对象(通常命名为self)。

  • 数据访问权限:

    • 函数不能直接访问对象的属性

    • 而方法可以通过self参数访问对象的属性。

  • 命名约定:

    • 函数的名称通常用小写字母和下划线
    • 方法的名称通常用驼峰命名法。
  • 下面是一个示例代码,展示了函数和方法的区别:

# 函数示例
def add(a, b):
    return a + b

result = add(2, 3)
print(result)  # 输出:5

# 方法示例
class Calculator:
    def add(self, a, b):
        return a + b

calculator = Calculator()
result = calculator.add(2, 3)
print(result)  # 输出:5
  • 在上述示例中
    • add函数是一个独立的函数,可以直接调用。
    • 而Calculator类中的add方法是一个属于Calculator类的函数,必须通过Calculator对象来调用。

【4】总结起来

  • 函数是一段独立的可重复使用的代码
  • 而方法是与对象或类紧密关联的函数,用于描述对象或类的行为。
  • 它们在调用方式、所属关系、参数传递和数据访问权限等方面存在明显的区别。

标签:调用,函数,区别,补充,对象,add,或类,方法
From: https://www.cnblogs.com/dream-ze/p/17594592.html

相关文章

  • 【补充】isinstance()issubclass()
    【补充】isinstance()/issubclass()isinstance()函数和issubclass()函数是Python中的两个内置函数用于判断对象与类之间的关系。【1】isinstance()isinstance()函数用于检查一个对象是否是一个类的实例。它接受两个参数第一个参数是待检查的对象第二个参数是类或类型。......
  • 【补充】docker-compose部署Yapi
    【补充】docker-compose部署Yapi参考博客:docker-compose部署Yapi-知乎(zhihu.com)【1】了解DockerCompose:DockerCompose是Docker官方推出的一个用于定义和运行多个Docker容器的工具。通过使用DockerCompose,你可以使用一个单独的yaml文件来定义多个相关的服务,然后使......
  • 【补充】什么是mock数据
    【补充】什么是mock数据【1】介绍Mock数据是在软件开发过程中使用的一种方式,它用于模拟真实数据源的数据,并且具有相似的数据结构和字段。Mock数据通常被用作在实际的数据源不可用或者无法获得时进行开发、测试和演示。Mock数据的主要目的是在软件开发的早期阶段就提供可......
  • 剑指 Offer 30. 包含min函数的栈(简单)
    题目:classMinStack{public:stack<int>st1;//维护原栈stack<int>st2;//维护最小值的栈/**initializeyourdatastructurehere.*/MinStack(){}voidpush(intx){st1.push(x);......
  • 02_llvm的IR测试创建函数和代码块
    如果要使用LLVM的能力,则需熟悉如何根据自己的代码生成出llvm的IR,以便提供给llvm使用。测试创建function测试代码如下02_test_function.cpp#include"llvm/IR/Module.h"#include"llvm/IR/LLVMContext.h"#include"llvm/Support/raw_ostream.h"#include"llvm/IR/Function.h&qu......
  • FFmpeg方法用法大全【欢迎补充】
    1.定义FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多code都是从头开......
  • docker-compose和docker compose的区别
    在docker实际使用中,经常会搭配docker-compose,用来定义和运行多个Docker容器。在实际中会发现,有时候的指令是docker-compose,有时候是dockercompose,下面给出解释。docker官方文档:https://docs.docker.com/compose/install/linux/官方文档中其实已经给出了答案,首先docker-compos......
  • URL函数的使用(支持正则表达式)、分组、反向解析、Django2的转换器、路由分发、伪静态的
    url('test',views.test),url函数的第一个参数是支持正则表达式的如果匹配到一个路由,就不在往下匹配,直接执行路由对应的视图函数 http://127.0.0.1:8000/test/是django默认设置的,django会先拿着test去匹配,如果匹配不到,它会自动加一个斜杠再次去匹配 去浏览器器搜索textadd只......
  • UVM:3.3.2 field_automation 机制常用的函数
    1.copy要把A的实例复制到B实例中,应该使用B.copy(A),使用前,B必须使用new分配好内存空间。2.compare比较A与B是否一样,可以使用A.compare(B),也可以使用B.compare(A)。相等时,返回1;否则为0。3.pack_bytes将所有字段打包成bytes流。返回的是size。4.unpack_bytes:将byte流逐一恢复到某个cla......
  • 空间(虚拟主机)与服务器的区别
    虚拟主机和服务器,属于被包含的关系,虚拟主机是利用网络空间技术,把一台服务器分成许多的“虚拟小空间”,每一个网络空间都具有完整的Internet服务功能,服务器是真实存在的物理设备;虚拟空间是虚拟出来的主机,是一台服务器里的一部分硬盘空间,一台服务器上存在多个虚拟主机两者在成本方面存......