python类方法和实例方法区别 python类方法和静态方法有什么用?
python类方法和静态方法有什么用?
Python中至少有三种常用的方法类型,即实例方法、类方法和静态方法。它们是如何定义的?怎么称呼?它们的区别和作用是什么?见下文。
首先,所有三个方法都在类中定义。现在,我将简要介绍如何定义和调用。(PS:实例对象拥有最多权限。)
实例方法
定义:第一个参数必须是实例对象。参数名通常被认为是“self”,通过它可以传递实例的属性和方法(或类的属性和方法);
Call:只能由实例对象调用。
Class method
定义:使用decorator@classmethod。第一个参数必须是当前类对象。参数名通常被认为是“CLS”。用来传递类的属性和方法(不是实例的属性和方法);
调用:实例对象和类对象都可以被调用。
Static method
定义:使用decorator@Static方法。参数是任意的,没有“self”和“CLS”参数,但类或实例的任何属性和方法都不能在方法体中使用;
调用:实例对象和类对象都可以调用。
实例方法
简而言之,实例方法是类的实例可以使用的方法。这里没有太多的解释。
Class method
使用decorator@classmethod。
原则上,类方法是将类本身作为对象进行操作的方法。假设有一个方法,用类本身作为对象逻辑调用该方法更为合理,那么就可以将该方法定义为类方法。此外,如果需要继承,也可以将其定义为类方法。
以下场景如下:
假设我有一个学生班和一个班级。我要实现的功能如下:
执行增加类大小的操作并获取类的总数;
学生类从类继承。学生的每一个实例化都可以增加类的大小;
最后,我想定义一些学生来获得类的总数。
思考:用类方法解决这个问题更合适。为什么?因为我实例化了学生,但是如果从学生的例子中得到班级的总规模,在逻辑上显然是不合理的。同时,如果要得到类的总数,则不必生成类实例。
python静态方法作用?
主要用于封装类中的附加函数。但是,在使用它时,我们不希望在调用它时首先创建实例化对象。它与类本身无关,等价于类中的一个独立函数。
python为什么要使用静态方法?
Python使用静态方法,类似于函数工具。一般来说,静态方法被尽可能少地使用。
Python的静态方法和类成员方法可以通过类或实例访问。厘清它们的概念并不容易,但它们之间还是有区别的:1。静态方法不需要传入self参数,类成员方法需要传入表示类的CLS参数;
2。从第一点看,静态方法不能访问实例变量,类成员方法不能访问实例变量,但是静态方法有点像函数工具库,而类成员方法更像java面向对象概念中的静态方法。
Python中的classmethod和staticmethod有什么具体用途?
区别在于以下两个方面:
1。Classmethod类方法必须将类作为第一个参数,“can access the class variable”,可以通过实例名或类名访问;
2。静态方法Static method不强制传入self或CLS,对类和实例一无所知(相当于将class方法变成普通方法,独立于类),“无法访问类”还可以通过实例名或类名访问实例变量。
具体用途如下:
1。Classmethod类方法依赖self或CLS来传递参数,因此它必须写在类中,与类密切相关,并且可以访问类外的类变量;
2。静态方法静态方法完全独立于类,因此它不能访问类方法。
就这么简单。是否需要访问类变量取决于是否需要访问类方法。
python类方法和实例方法区别 python类方法和实例方法详解 python变量命名规则
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。