Python中静态方法的实现

Python似乎很讨厌修饰符,没有常见的static语法。其静态方法的实现大致有以下两种方法:

第一种方式(staticmethod):

>>> class Foo:
        str = "I'm a static method."

def bar():
            print Foo.str

bar = staticmethod(bar)

>>> Foo.bar()
I'm a static method.

第二种方式(classmethod):

>>> class Foo:
        str = "I'm a static method."

def bar(cls):
            print cls.str

bar = classmethod(bar)

>>> Foo.bar()
I'm a static method.

---------------------------------------------------------------

上面的代码我们还可以写的更简便些:

>>> class Foo:
        str = "I'm a static method."

@staticmethod
        def bar():
            print Foo.str

>>> Foo.bar()
I'm a static method.

或者

>>> class Foo:
        str = "I'm a static method."

@classmethod
        def bar(cls):
            print cls.str

>>> Foo.bar()
I'm a static method.

OK,差不多就是这个样子了。

Python中静态方法的实现相关推荐

  1. python中静态方法可以访问对象变量_python 面向对象-实例变量、类变量、实例方法、类方法、静态方法...

    需要搞清楚的是, 实例方法与类方法是什么?类变量和实例变量又是什么? 类方法中如何访问类变量.类方法要如何调用?当然 实例方法中如何访问类变量?能 实例方法访问实例变量,实例方法如何被调用?当然 类方 ...

  2. python中静态方法存在的意义

    实例方法.类方法.静态方法的区别 这三种方法都是保存在类的内存中,调用者不同. 实例方法由对象调用,至少一个self参数,self代表对象的引用. self指向当前的实例对象,所以只要该方法有self ...

  3. python中实例方法分类_python方法的分类(实例方法、类方法、静态方法)

    方法和函数的区分 很多童鞋会比较疑惑,方法和函数有什么区别,都是通过def去定义的啊? 只需要记住一点,方法是用来描述一个目标的行为动作! 不论你是直接通过 类名.方法调用,还是通过由类生成的实例.方 ...

  4. python类的静态属性和静态方法_详解Python中的静态方法与类成员方法

    前言 因为Python的水平目前一直是处于能用阶段,平时写的脚本使用的Python的写法也比较的简单,没有写过稍微大一点的项目.对Python中的类,类之间的组织关系,整个项目中类之间如何耦合还缺乏认 ...

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

    在java.c#等高级语言中我们用static来定义静态方法和静态变量,那么在python中如何定义静态方法和静态变量呢. python提供了@classmethod和@staticmethod来定义 ...

  6. Python中纠结处之其一—— 静态方法、类方法

    转身投入Python有一周左右的日子了.这一周不能算是很仔细的去研究它,用比喻的话,还在学习骑车的阶段,未及拆车和造车这样高深. 但此时就有了让我产生纠结之处.查阅了一些已对这点做比较的博文,对其有所 ...

  7. Python中必学知识点:类方法、实例方法和静态方法

    在面向对象编程中,类和实例是两个非常重要的概念,类是一个泛指的模型化的概念,如人员. 通过类可以创建实例,实例指某一个具体的对象,如张三. class Person(object): # 定义类 pa ...

  8. python中的静态方法如何调用_关于Python中如何使用静态、类、抽象方法的权威指南(译)...

    对于Python中静态.类.抽象方法的使用,我是一直很迷糊的.最近看到一篇技术文章对这方面解释的很好,在此翻译一下,加深印象,也为有需要的同学提供一个方便. Python中方法是如何工作的: 方法即函 ...

  9. 浅谈python中的一般方法、静态方法(staticmethod)和类方法(classmethod)

    我们先来简单谈谈python类中一般方法.静态方法和类方法的区别. 1.类中的一般方法 一般方法在定义的时候,需要有表示类实例的参数(通常以self表示,例如def foo(self,arg1,arg ...

最新文章

  1. XamarinAndroid组件教程设置动画的时长参数
  2. 第十一届山东省大学生程序设计竞赛(热身赛)Mika with Cherry Cake
  3. Python常见数据结构整理
  4. python入门学习:4.if语句
  5. 使用Spring 3.2的DeferredResult进行长轮询
  6. Python3对IP进行查询
  7. 拓端tecdat|R语言自适应平滑样条回归分析
  8. Python多线程实例
  9. 塑料划分PP PE PS PA ABS PVC
  10. C# :弧度角度转换
  11. 虚拟机ping通主机步骤_6在购买虚拟主机服务之前,请按照操作步骤进行操作
  12. K-Stack 2021牛客多校2
  13. 淘宝京东类电商评论标签化的思路
  14. FastJson - JSONObject 如何设置成有序?(如:LinkedHashMap)
  15. 刷问卷星调查问卷_如何通过回答快速调查问卷从Google获得免费资金
  16. JavaScript 页面资源加载:onload,onerror
  17. 如何阻止电脑下载安装垃圾软件?阻止电脑下载垃圾软件方法
  18. 【Matlab安装】Mac系统安装MATLAB 2020a
  19. 使用Nextcloud搭建私人云盘,并内网穿透实现公网远程访问
  20. 安装DXSDK_Jun10.exe出错

热门文章

  1. 写5个不同的自己的函数,来截取一个全路径的文件的扩展名,允许封装php库中已有的函数。
  2. python构建bp神经网络_鸢尾花分类(一个隐藏层)__1.数据集
  3. 团队作业8----第二次项目冲刺(beta阶段)5.25
  4. SQLite的局限性
  5. ubuntu11.10安装mysql+handlersocket
  6. 在save中重写 AdminModel 方法 和 Signals
  7. 全球 MEDC 2007 举行日期
  8. CVE-2015-1635(MS15-034)-HTTP.sys远程代码执行复现
  9. 如何给multicraft装PHP,我的世界Linux搭建Multicraft网页后台教程更新和添加服务端文件...
  10. 总结 创建领取 微信会员卡 踩过的坑