2016 - 2024

感恩一路有你

python方法和函数的区别 python为什么要使用静态方法?

浏览量:1779 时间:2021-03-13 17:35:34 作者:admin

python为什么要使用静态方法?

Python使用静态方法,类似于函数工具。一般来说,静态方法被尽可能少地使用。

Python的静态方法和类成员方法可以通过类或实例访问。厘清它们的概念并不容易,但它们之间还是有区别的:1。静态方法不需要传入self参数,类成员方法需要传入表示类的CLS参数;

2。从第一点看,静态方法不能访问实例变量,类成员方法不能访问实例变量,但是静态方法有点像函数工具库,而类成员方法更像java面向对象概念中的静态方法。

python静态方法作用?

主要用于封装类中的附加函数。但是,在使用它时,我们不希望在调用它时首先创建实例化对象。它与类本身无关,等价于类中的一个独立函数。

python类方法和静态方法有什么用?

Python中至少有三种常用方法类型,即实例方法、类方法和静态方法。它们是如何定义的?怎么称呼?它们的区别和作用是什么?见下文。

首先,所有三个方法都在类中定义。现在,我将简要介绍如何定义和调用。(PS:实例对象拥有最多权限。)

实例方法

定义:第一个参数必须是实例对象。参数名通常被认为是“self”,通过它可以传递实例的属性和方法(或类的属性和方法);

Call:只能由实例对象调用。

Class method

定义:使用decorator@classmethod。第一个参数必须是当前类对象。参数名通常被认为是“CLS”。用来传递类的属性和方法(不是实例的属性和方法);

调用:实例对象和类对象都可以被调用。

Static method

定义:使用decorator@Static方法。参数是任意的,没有“self”和“CLS”参数,但类或实例的任何属性和方法都不能在方法体中使用;

调用:实例对象和类对象都可以调用。

实例方法

简而言之,实例方法是类的实例可以使用的方法。这里没有太多的解释。

Class method

使用decorator@classmethod。

原则上,类方法是将类本身作为对象进行操作的方法。假设有一个方法,用类本身作为对象逻辑调用该方法更为合理,那么就可以将该方法定义为类方法。此外,如果需要继承,也可以将其定义为类方法。

以下场景如下:

假设我有一个学生班和一个班级。我要实现的功能如下:

执行增加类大小的操作并获取类的总数;

学生类从类继承。学生的每一个实例化都可以增加类的大小;

最后,我想定义一些学生来获得类的总数。

思考:用类方法解决这个问题更合适。为什么?因为我实例化了学生,但是如果从学生的例子中得到班级的总规模,在逻辑上显然是不合理的。同时,如果要得到类的总数,则不必生成类实例。

Python中的classmethod和staticmethod有什么具体用途?

区别在于以下两个方面:

1。Classmethod类方法必须将类作为第一个参数,“can access the class variable”,可以通过实例名或类名访问;

2。静态方法Static method不强制传入self或CLS,对类和实例一无所知(相当于将class方法变成普通方法,独立于类),“无法访问类”还可以通过实例名或类名访问实例变量。

具体用途如下:

1。Classmethod类方法依赖self或CLS来传递参数,因此它必须写在类中,与类密切相关,并且可以访问类外的类变量;

2。静态方法静态方法完全独立于类,因此它不能访问类方法。

就这么简单。是否需要访问类变量取决于是否需要访问类方法。

python方法和函数的区别 python自定义异常 运行和调试有什么区别

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。