我的编程空间,编程开发者的网络收藏夹
学习永远不晚

基于Python函数和方法的区别有哪些

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

基于Python函数和方法的区别有哪些

这篇文章给大家分享的是有关基于Python函数和方法的区别有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

简单总结:

与类和实例无绑定关系的function都属于函数(function);

与类和实例有绑定关系的function都属于方法(method)。

首先摒弃错误认知:并不是类中的调用都叫方法

函数(FunctionType)

函数是封装了一些独立的功能,可以直接调用,能将一些数据(参数)传递进去进行处理,然后返回一些数据(返回值),也可以没有返回值。可以直接在模块中进行定义使用。 所有传递给函数的数据都是显式传递的。

方法(MethodType)

方法和函数类似,同样封装了独立的功能,但是方法是只能依靠类或者对象来调用的,表示针对性的操作。

方法中的数据self和cls是隐式传递的,即方法的调用者;

方法可以操作类内部的数据

简单的说,函数在python中独立存在,可直接使用的,而方法是必须被别人调用才能实现的。

静态方法除外(与类和对象均无关,通过类名和对象名均可被调用,属函数)

在模块中实现的函数只要导入这个模块的这个函数既可以任意使用了,但是在类中声明的必须导入这个类之后然后再通过创建实例或者类名来调用。可以说直接在模块中声明的是更普遍广泛性的函数,而在类中声明的方法一般是专属于一类事物特有的

from types import MethodType,FunctionTypeclass Foo(object):  def __init__(self):   self.name="haiyan"  def func(self):   print(self.name)obj = Foo()print(isinstance(obj.func,FunctionType)) #Falseprint(isinstance(obj.func,MethodType)) #True #说明这是一个方法 print(isinstance(Foo.func,FunctionType)) #True #说明这是一个函数。print(isinstance(Foo.func,MethodType)) #False

是的!例子中很明确,类对象调用func是方法,类调用func是函数,并且是自己传递参数123!

注意,这只是在 python3 中才有的区分,python2 中全部称为方法。

最大的区别是参数的传递参数,方法是自动传参self,函数是主动传参

那么以后我们就可以直接看参数是如何传递的来判断,

如果还不确定可以打印类型看看

from types import FunctionType,MethodTypeprint(isinstance(obj.func,MethodType)) ---># Trueprint(isinstance(Foo.func,FunctionType)) ---># True

表面区别:

区别一所处的位置:函数是直接写文件中而不是class中,方法是只能写在class中。

区别二定义的方式:

函数定义的方式 def关键字 然后接函数名 再是括号 括号里面写形参也可以省略不写形参

def functionName(): """这里是函数的注释""" print("这一块写函数的内容"

方法定义的方式 首先方法是定义在类中的其他他大体和函数定义差不多,这里需要注意的一点就是方法必须带一个默认参数(相当于this),静态方法除外

class className(super):  def methodName(self):  """这里是方法的注释  self相当于this;  """  print("这里是方法的内容")

区别三调用的方式:

函数的调用:函数的调用是直接写 函数名(函数参数1,函数参数2,......)

def functionName(): print("这是一个函数") #调用functionName()

方法的调用:方法是通过对象点方法调用的(这里是指对象方法)

class className:  def method(self):  print("这是一个方法") #调用---------------------#实例化对象c=className() c.method()

python类的实例方法、静态方法和类方法区别及其应用场景

一、先看语法,python 类语法中有三种方法,实例方法,静态方法,类方法。

ps.python中self,cls的区别

普通实例方法,第一个参数需要是self,它表示一个具体的实例本身。

如果用了staticmethod,那么就可以无视这个self,而将这个方法当成一个普通的函数使用。

而对于classmethod,它的第一个参数不是self,是cls,它表示这个类本身。

# coding:utf-8class Foo(object): """类三种方法语法形式"""  def instance_method(self):  print("是类{}的实例方法,只能被实例对象调用".format(Foo))  @staticmethod def static_method():  print("是静态方法")  @classmethod def class_method(cls):  print("是类方法") foo = Foo()foo.instance_method()foo.static_method()foo.class_method()print('----------------')Foo.static_method()Foo.class_method()

运行结果如下

是类<class '__main__.Foo'>的实例方法,只能被实例对象调用

是静态方法

是类方法

----------------

是静态方法

是类方法

说明:

实例方法只能被实例对象调用,静态方法(由@staticmethod装饰的方法)、类方法(由@classmethod装饰的方法),可以被类或类的实例对象调用。

实例方法,第一个参数必须要默认传实例对象,一般习惯用self。

静态方法,参数没有要求。

类方法,第一个参数必须要默认传类,一般习惯用cls。

补充:python方法和函数集锦

方法的使用: 变量.方法名(参数)

函数的使用: 函数名(参数)

字符串

1、删除空白

rstrip(): 返回去掉尾部的空格后的字符串。(不改变原字符串)

lstrip(): 去掉首部空格

strip(): 去掉两端的空格

2、修改字符串大小写

title(): 以首字母大写的方式显示每个单词

upper(): 将字符串转换为全部大写

lower(): 将字符串转换为全部小写

name = "ada lovelace" print(name.title())# => Ada Lovelace print(name.upper())# => ADA LOVELACE print(name.lower())# => ada lovelace

数字、浮点数

1、类型转换

str():将数字类型用作字符串

列表

1、添加元素

append(): 在列表末尾添加元素 insert(index, value): 在列表索引位置添加新元素

2、删除元素

del语句

pop(): 删除列表末尾元素

pop(index): 删除指定索引位置的元素

remove(value): 删除指定值的元素(第一次出现值)

3、排序

列举的方法只适用于所有元素都是小写字母的列表,如果是大写字母和小写字母混合的情况,因为解读大写字母的方式有多种,所以需要进一步指定准确的排列方法才行。

(1) 永久性修改

sort(): 按列表元素首字母排序。(直接修改原列表)

sort(reverse = True): 按列表元素首字母倒序排序。

使用:arr.sort()

(2) 临时排序(返回排序后的列表,不改变原列表)

sorted():按列表元素首字母排序。 sorted(arr, reverse = True): 按列表元素首字母倒序排序使用:sorted(arr)

4、倒着打印列表

reverse()

反转列表元素的顺序,但并不进行排序处理。永久性修改列表元素的排列顺序。但是可再次使用reverse()方法反转恢复

5、确定列表的长度

len(arr)

感谢各位的阅读!关于“基于Python函数和方法的区别有哪些”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

基于Python函数和方法的区别有哪些

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

基于Python函数和方法的区别有哪些

这篇文章给大家分享的是有关基于Python函数和方法的区别有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。简单总结:1、与类和实例无绑定关系的function都属于函数(function);2、与类和实例有绑
2023-06-14

java 方法和函数的区别有哪些

面向对象的语言叫方法,面向过程的语言叫函数。在java中没有函数这么一说,只有方法一说。实际上方法就是函数,函数就是方法,只是在不同的语言不同的称呼而已。一句话告诉你如何区分函数与方法:函数是大家的函数,方法是类的方法。如何区分一个ITer是设计师还是码工。看
java 方法和函数的区别有哪些
2014-07-09

go语言中方法和函数的区别有哪些

本文小编为大家详细介绍“go语言中方法和函数的区别有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“go语言中方法和函数的区别有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。区别:1、函数function
2023-07-04

PHP5和PHP7之间有哪些关于获取函数的区别

这篇文章主要讲解了“PHP5和PHP7之间有哪些关于获取函数的区别”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“PHP5和PHP7之间有哪些关于获取函数的区别”吧!在 PHP5 和 PHP7
2023-06-25

Ruby和Java的基础语法有哪些区别

本篇内容主要讲解“Ruby和Java的基础语法有哪些区别”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Ruby和Java的基础语法有哪些区别”吧!前言这篇文章示例代码比较多, Java 程序员可
2023-06-16

es5函数和es6箭头函数有哪些区别

本篇内容介绍了“es5函数和es6箭头函数有哪些区别”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!区别:1、写法不同,ES6箭头函数为“()
2023-07-04

es6箭头函数和普通函数的区别有哪些

这篇文章主要介绍“es6箭头函数和普通函数的区别有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“es6箭头函数和普通函数的区别有哪些”文章能帮助大家解决问题。ES6 箭头函数的主要区别如下: 1
2023-06-17

php中intval和floor函数的区别有哪些

本篇内容主要讲解“php中intval和floor函数的区别有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php中intval和floor函数的区别有哪些”吧!区别:1、intval()函
2023-06-29

pycharm和python的区别有哪些

PyCharm 是一个 Python 集成开发环境(IDE),而 Python 是一种编程语言。它们之间的区别如下:1. 功能:PyCharm 提供了许多开发工具,如代码编辑器、调试器、自动补全、版本控制等,而 Python 仅仅是一种编程
2023-09-21

PHP函数和方法有什么区别

今天小编给大家分享一下PHP函数和方法有什么区别的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。PHP函数是一段可重复使用的代
2023-07-05

基于ScheduledExecutorService的方法有哪些

这篇文章主要介绍基于ScheduledExecutorService的方法有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!开发中,往往遇到另起线程执行其他代码的情况,用java定时任务接口ScheduledExe
2023-05-31

C++中成员函数和友元函数的区别有哪些

C++中成员函数和友元函数之间有以下几点区别:1. 访问权限:成员函数可以直接访问类的私有成员和保护成员,而友元函数可以在类的外部访问类的私有成员和保护成员。2. 调用方式:成员函数可以通过对象或指针调用,而友元函数可以直接调用,不需要通过
2023-08-16

C语言中宏和函数的区别有哪些

这篇文章主要介绍了C语言中宏和函数的区别有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C语言中宏和函数的区别有哪些文章都会有所收获,下面我们一起来看看吧。C语言中的宏和函数是非常相似的,它们都可以完成类似
2023-07-05

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录