zoukankan      html  css  js  c++  java
  • 关于python中的类方法(classmethod)和静态方法(staticmethod)

    首先明确两点:

    a)python在创建类的时候,self指向的是类的实例而不是类属性

    b)我们所创建的类的方法有两种作用,一种是改变类的属性,一种是改变实例的属性,这点一定要分清!

    c)我们在调用类的一般的方法的时候,是将实例本身传递给方法

    现在我们来说一下主要的三种类的方法:

    实例方法classmethod(类方法)、staticmethod(静态类方法):

    简单介绍一下它们的区别:

    实例方法就是我们常见的类的方法,它们是与类的实例绑定在一起,所能操作的也是实例的属性而不能操作类的属性;

    classmethod方法是与类绑定在一起,它们可以修改类的属性;

    staticmethod方法不与类以及类的实例绑定在一起;

    下面以一些实例,讲解一下它们的区别:

    输出:

    1

    0

    上面的初始化方法是实例方法,且是对实例进行了操作,虽然传入的参数是类的实例,但在这个方法中我们也可以对类进行操作,如下:

    输出:

    2

    2

    因为上面的初始化方法中没有对类的实例进行初始化,所以ik1实例的no_inst值就是类的属性

    再看看关于classmethod和staticmethod:

    还有一点注意的是:在使用@classmethod和@staticmethod时,它们只负责下面的一个方法;

  • 相关阅读:
    Java 8 并行流与串行流
    Java 8 新增的 Stream
    Java 8 新增的 Lambda 表达式
    《CSS揭秘》 |用户体验与结构布局
    《CSS揭秘》 |阴影
    《CSS揭秘》 |形状
    《CSS揭秘》 |前言
    《CSS揭秘》 |背景与边框
    《CSS揭秘》 |CSS编码技巧
    《CSS揭秘》 |检测属性与属性值
  • 原文地址:https://www.cnblogs.com/zf-blog/p/8615505.html
Copyright © 2011-2022 走看看