0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

python静态方法与类方法

python爬虫知识分享 来源:python爬虫知识分享 作者:python爬虫知识分享 2022-03-07 16:56 次阅读

python静态方法与类方法

1. 写法上的差异

类的方法可以分为:

静态方法:有 staticmethod 装饰的函数

类方法:有 classmethod 装饰的函数

实例方法:没有任何装饰器的普通函数

举个例子,如下这段代码中,run 普通的实例方法,eat 是静态方法,jump 是类方法。

class Animal:
    def __init__(self, name):
        self.name = name

    def run(self):
        print(f"{self.name}跑起来啦")

    @staticmethod
    def eat():
        print("正在吃饭...")

    @classmethod
    def jump(cls, name):
        print(f"{name}跳起来啦")

这三种方法,在写法有很大的区别:

1、普通的实例方法,在定义时,他的第一个方法固定是 self,如果是从实例调用,那么 self 参数 不需要传入,如果是通过类调用,那么 self 要传入已经实例化的对象。

>>> dog=Animal(name="小黑")
>>> dog.run()
小黑跑起来啦
>>> Animal.run(dog)
小黑跑起来啦

2、静态方法,在定义时,不需要 self 参数。

>>> dog=Animal(name="小黑")
>>> dog.eat()
正在吃饭...
>>> Animal.eat()
正在吃饭...

3、类方法,在定义时,第一个参数固定是 cls,为 class 的简写,代表类本身。不管是通过实例还是类调用类方法,都不需要传入 cls 的参数。

>>> dog=Animal(name="小黑")
>>> dog.jump("小黑")
小黑跳起来啦
>>> Animal.jump("小黑")
小黑跳起来啦

2. 方法与函数区别

在前面,我们很经常提到方法和函数,为免有同学将他们混为一谈,我这里总结一下他们的区别。

在 Python 3.x 中,

普通函数(未定位在类里)和静态方法,都是函数(function )。

实例方法(@staticmethod)和类方法,都是方法(method )。

这些结论其实都可以使用 type 函数得到验证。

先准备如下代码

class Animal:
    def __init__(self, name):
        self.name = name

    def run(self):
        print(f"{self.name}跑起来啦")

    @staticmethod
    def eat():
        print("正在吃饭...")

    @classmethod
    def jump(cls, name):
        print(f"{name}跳起来啦")

def demo_func():
    pass

然后进入 Python Console 模式

>>> type(demo_func)  # 普通函数

>>> type(dog.eat)   # 静态方法

>>>
>>> type(dog.run)  # 实例方法

>>> type(dog.jump)  # 类方法

方法是一种和对象(实例或者类)绑定后的特殊函数。

方法本质上还是函数,不同之处在于它与对象进行绑定。

审核编辑:符乾江

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 面向对象
    +关注

    关注

    0

    文章

    64

    浏览量

    9978
  • python
    +关注

    关注

    55

    文章

    4780

    浏览量

    84440
收藏 人收藏

    评论

    相关推荐

    一种半动态环境中的定位方法

    在非静态环境中进行地图绘制和定位是机器人学的基本问题。之前的方法大多关注静态和高度动态的物体,但在半动态环境中,如果不考虑低动态物体(如停放的汽车和行人),可能会导致定位失败。我们提出了语义建图
    的头像 发表于 09-30 14:40 210次阅读
    一种半动态环境中的定位<b class='flag-5'>方法</b>

    手机静态独享ip搭建方法,是如何操作的?

    手机静态独享IP的搭建主要涉及到选择一个可靠的代理服务提供商,并从该服务商处获取静态独享IP地址及其配置信息,然后在手机上进行相应的网络设置。
    的头像 发表于 09-13 09:41 315次阅读
    手机<b class='flag-5'>静态</b>独享ip搭建<b class='flag-5'>方法</b>,是如何操作的?

    如何实现Python复制文件操作

    Python 中有许多“开盖即食”的模块(比如 os,subprocess 和 shutil)以支持文件 I/O 操作。在这篇文章中,你将会看到一些用 Python 实现文件复制的特殊方法。下面我们开始学习这九种不同的
    的头像 发表于 07-18 14:53 364次阅读

    基于Python的深度学习人脸识别方法

    基于Python的深度学习人脸识别方法是一个涉及多个技术领域的复杂话题,包括计算机视觉、深度学习、以及图像处理等。在这里,我将概述一个基本的流程,包括数据准备、模型选择、训练过程、以及测试与评估,并附上简单的代码示例。
    的头像 发表于 07-14 11:52 1170次阅读

    AB放大器的工作特性和偏置方法

    AB放大器是音频放大技术领域中的一重要设备,其工作特性和偏置方法对于实现高质量的音频输出至关重要。本文将详细阐述AB放大器的工作特性,包括其工作原理、性能优势以及存在的局限性,并
    的头像 发表于 05-23 16:00 977次阅读

    Go语言中的函数、方法与接口详解

    Go 没有,不过可以为结构体类型定义方法方法就是一带特殊的接收者参数的函数。方法接收者在它自己的参数列表内,位于 func 关键字和
    的头像 发表于 04-23 16:21 744次阅读

    基于Python的地图绘制教程

    本文将介绍通过Python绘制地形图的方法,所需第三方Python相关模块包括 rasterio、geopandas、cartopy 等,可通过 pip 等方式安装。
    的头像 发表于 02-26 09:53 1113次阅读
    基于<b class='flag-5'>Python</b>的地图绘制教程

    常用的变频器检测方法静态测试和动态测试

    常用的变频器检测方法静态测试和动态测试  变频器是一种电力调节装置,可以实现对电动机的调速和节能。在使用变频器时,经常需要对其进行检测,以确保其正常工作。常用的变频器检测方法主要包括静态
    的头像 发表于 02-01 15:47 4320次阅读

    网线水晶头的接线方法和五网线可以混用吗

    可能会导致信号质量下降,影响网络传输的速度和稳定性。 T568A接线方法 T568A是一种常用的六网线接线方法,它采用的是55678排序方式。具体接线方法如下: 水晶头的一侧,从左至
    的头像 发表于 01-31 13:57 4511次阅读

    如何解决Python爬虫中文乱码问题?Python爬虫中文乱码的解决方法

    如何解决Python爬虫中文乱码问题?Python爬虫中文乱码的解决方法Python爬虫过程中,遇到中文乱码问题是常见的情况。乱码问题主要是由于编码不一致所导致的,下面我将详细介绍
    的头像 发表于 01-12 15:11 2171次阅读

    加速Python for循环的12种方法

    Python内建的一个常用功能是timeit模块。下面几节中我们将使用它来度量循环的当前性能和改进后的性能。
    的头像 发表于 01-04 17:33 1877次阅读
    加速<b class='flag-5'>Python</b> for循环的12种<b class='flag-5'>方法</b>

    Python程序不自动关闭的方法

    有时候,我们希望Python程序在完成了任务后不立即自动关闭,而是保持运行状态,以便进行进一步的操作或观察程序的输出。在本文中,我们将探讨几种方法来实现这一目标。 使用input函数 最简单的方法
    的头像 发表于 11-29 15:10 5305次阅读

    查看python安装路径的方法

    如何查看Python安装路径,以及各个操作系统下的细节和注意事项。 一、Windows操作系统下查看Python安装路径的方法 对于Windows操作系统,有多种方法可以查看
    的头像 发表于 11-29 14:54 1.1w次阅读

    this可以出现在方法中吗

    用 this 关键字时,编译器会发出错误提示,因为方法静态方法,没有与它们关联的特定对象实例。然而,在特定情况下,我们可以使用 this 关键字在
    的头像 发表于 11-28 16:24 1320次阅读

    运行Python程序的几种常见方法

    Python是一种高级编程语言,具有简单易学,易于阅读和调试的特点。当你完成了一个Python程序之后,你需要运行它以检查程序是否按照预期工作。下面是运行Python程序的几种常见方法
    的头像 发表于 11-28 15:32 2419次阅读