【开发者笔记】python中的类方法(@classmethod)和静态方法(@staticmethod)

简介: 在java、c#等高级语言中我们用static来定义静态方法和静态变量,那么在python中如何定义静态方法和静态变量呢。 python提供了@classmethod和@staticmethod来定义静态方法,刚接触的时候不太明白,Stack Overflow提供了一个比较方便理解的解释,Stack Overflow回答。
+关注继续查看

 

在java、c#等高级语言中我们用static来定义静态方法和静态变量,那么在python中如何定义静态方法和静态变量呢。

python提供了@classmethod和@staticmethod来定义静态方法,刚接触的时候不太明白,Stack Overflow提供了一个比较方便理解的解释,Stack Overflow回答

但是看完还是不太理解,于是自己写了个实例:

 

class stclass():
    d=1
    #对象方法
    def imethod(self):
        print(self)
        print("instance method")
    #类方法
    @classmethod
    def cmethod(cls):
        print(cls)
        print("class method")
    #静态方法
    @staticmethod
    def smethod():
        print("static method")

sc = stclass()
sc.imethod()
sc.cmethod()
sc.smethod()

  运行结果如下:

然后就可以解释了:

1、实例方法,该实例属于对象,该方法的第一个参数是当前实例,拥有当前类以及实例的所有特性。

2、类方法,该实例属于类,该方法的第一个参数是当前类,可以对类做一些处理,如果一个静态方法和类有关但是和实例无关,那么使用该方法。

3、静态方法,该实例属于类,但该方法没有参数,也就是说该方法不能对类做处理,相当于全局方法。

 

黑夜给了我黑色的眼睛,我却用它寻找光明
目录
相关文章
|
2月前
|
Linux 开发者 iOS开发
Python开发者必读:Pip使用全攻略与最佳实践
Python开发者必读:Pip使用全攻略与最佳实践
48 0
|
6月前
|
传感器 Rust 算法
HaaS Python 2.1 版本更新上线 在线热更新+智能行为感知算法+更多开发板/API+精彩开发者活动 快来体验
HaaS Python 2.1 版本更新上线 在线热更新+智能行为感知算法+更多开发板/API+精彩开发者活动 快来体验
|
7月前
|
Python
Python @classmethod和@staticmethod装饰器使用介绍
Python @classmethod和@staticmethod装饰器使用介绍
45 0
|
Python
python小知识-classmethod类方法
类方法:@classmethod装饰的方法,参数有一个隐含参数cls,表示类本身,类可以直接调用
181 0
|
Java Python
python之 @staticmethod 和 @classmethod
python之 @staticmethod 和 @classmethod
92 0
python之 @staticmethod 和 @classmethod
|
Rust JavaScript 前端开发
开发者调查报告:JavaScript 和 Python 仍占主导地位,Rust 持续猛增 4 倍
开发者调查报告:JavaScript 和 Python 仍占主导地位,Rust 持续猛增 4 倍
102 0
|
存储 NoSQL 前端开发
Sentry 开发者贡献指南 - 后端服务(Python/Go/Rust/NodeJS)
Sentry 开发者贡献指南 - 后端服务(Python/Go/Rust/NodeJS)
331 0
Sentry 开发者贡献指南 - 后端服务(Python/Go/Rust/NodeJS)
|
机器学习/深度学习 IDE 程序员
我的Go+语言初体验——Python开发者轻松上手
DT时代的到来,驱动全球形成海量数据的爆发式增长态势,尤其是 2020 年以来对于实体经济的重大变革,全球对于数据加工、分析、挖掘等需求日益迫切。在此背景下,数据科学家、数据分析师的人才培育面临着入门门槛较高的困境
156 0
我的Go+语言初体验——Python开发者轻松上手
|
存储 Linux 人机交互
合辑 | 学习python不可不知的开发者词条汇总之一:基础通识类
Python学习第一步——听懂专业名词。开发者词条来帮你!
相关产品
云迁移中心
推荐文章
更多