在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、静态方法,该实例属于类,但该方法没有参数,也就是说该方法不能对类做处理,相当于全局方法。

python中静态变量和静态方法_【开发者笔记】python中的类方法(@classmethod)和静态方法(@staticmethod)...相关推荐

  1. python中静态变量的作用_小白必读文章之全局变量与静态变量

    全局变量与静态变量 static 声明的变量在C语言中有两方面的特征: 1.变量被放在程序的全局存储区中,这样在下一次调用的时候还可以保持原来的赋值.这一点是它与堆栈变量和堆变量的区别. 2.变量用s ...

  2. java中的静态变量的作用域_详解JAVA中static的作用

    1.深度总结 引用一位网友的话,说的非常好,如果别人问你static的作用:如果你说静态修饰 类的属性 和 类的方法 别人认为你是合格的:如果是说 可以构成 静态代码块,那别人认为你还可以: 如果你说 ...

  3. python定义私有变量的方法_浅谈Python中的私有变量

    私有变量表示方法 在变量前加上两个下划线的是私有变量.class Teacher(): def __init__(self,name,level): self.__name=name self.__l ...

  4. python中静态变量_Python中的静态变量和方法

    python中静态变量 Defining static variable and method is a common programming concept and is widely used i ...

  5. python静态变量命名_为什么Python没有静态变量?

    为什么Python没有静态变量? 有一个问题问如何在python中模拟静态变量. 另外,在网上可以找到许多创建静态变量的解决方案. (尽管我还没有看到我喜欢的一个.) 为什么Python不支持方法中的 ...

  6. java中静态变量和静态方法分别有什么特点?

    java中静态变量和静态方法分别有什么特点? 悬赏分:0 - 解决时间:2006-4-10 10:28 提问者: vv_clear - 二级 最佳答案 为什么问了两次?再贴上另一篇 Thinking: ...

  7. java中静态变量,静态代码块,静态方法,实例变量,匿名代码块的加载顺序

    1. java中静态变量,静态代码块,静态方法,实例变量,匿名代码块 在Java中,使用{}括起来的代码称为代码块,代码块可以分为以下四种: (1)普通代码块:就是类中方法的方法体 public vo ...

  8. python 类中静态变量_Python中的类或静态变量

    python 类中静态变量 Python类/静态变量 (Python Class / Static Variables) Class or Static variables are class-rel ...

  9. Java中静态变量与静态方法的继承

    看下面的代码: public class Demo {public static void main(String[] args) {// 子类SonB继承父类Father,子类可以获取父类的所有属性 ...

  10. python局部静态变量_python如何设置静态变量

    众所周知,Python语言并不支持静态变量,比如下面这样一个应用场景: void foo() { static int count = 0; count ++; } 在Python中无法自然实现这个功 ...

最新文章

  1. POJO、VO、PO、FormBean区别:
  2. R语言使用回归方法解决方差分析问题
  3. 赋值运算符||位运算符||三元运算符
  4. java三目运算符判断boonlean,java三元运算符
  5. 天气预报API接口 : 城市对应码(中国天气网)
  6. python书籍推荐:Python Cookbook第三版中文
  7. 读书笔记_Effective_C++_条款二十四: 若所有参数皆需类型转换,请为此采用non-member函数...
  8. Linux 下构建域名服务器
  9. oracle表中多个字段同时和另一个表中关联解决办法
  10. (转)在FlashBuilder里的ActionScript工程中使用Flash CS5中的类 fl.controls库
  11. Promise对象和运算符
  12. TSC打印机标签纸出纸位置调整方法
  13. dwm1000 用c语言控制,DWM1000 测距原理简单分析(示例代码)
  14. 【JS逆向破解】爬虫抓取哦oh漫画实例Java/Python实现
  15. android 印章,android 印章 控件
  16. Github 标星 3w+,热榜第一,使用 Python实现所有算法!
  17. SpringBoot版本GA,SNAPSHOT,PRE的的含义
  18. thinkPHP安装教程
  19. Mac 上怎么双开微信
  20. Echarts实现图表下钻

热门文章

  1. java并发编程_Java并发编程之 synchronized
  2. matlab建模实例运筹学,matlab数学建模实例与编程教程
  3. 如何打造一个TB级微服务海量日志监控平台
  4. 120000字,你们要的Java 并发编程图文小册整理出来了,免费送给大家!
  5. 2021年要关注这5个开源Kubernetes项目
  6. 注意!我们熟知的“摩尔定律”被废了...
  7. Containers vs Serverless:怎么选择?
  8. 百万并发下的Nginx,技术人不得不知的那些事
  9. 使用Consul做服务发现的若干姿势
  10. 极客时间VIP年卡,任意专栏免费看,谁要?