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中静态方法的实现相关推荐
- python中静态方法可以访问对象变量_python 面向对象-实例变量、类变量、实例方法、类方法、静态方法...
需要搞清楚的是, 实例方法与类方法是什么?类变量和实例变量又是什么? 类方法中如何访问类变量.类方法要如何调用?当然 实例方法中如何访问类变量?能 实例方法访问实例变量,实例方法如何被调用?当然 类方 ...
- python中静态方法存在的意义
实例方法.类方法.静态方法的区别 这三种方法都是保存在类的内存中,调用者不同. 实例方法由对象调用,至少一个self参数,self代表对象的引用. self指向当前的实例对象,所以只要该方法有self ...
- python中实例方法分类_python方法的分类(实例方法、类方法、静态方法)
方法和函数的区分 很多童鞋会比较疑惑,方法和函数有什么区别,都是通过def去定义的啊? 只需要记住一点,方法是用来描述一个目标的行为动作! 不论你是直接通过 类名.方法调用,还是通过由类生成的实例.方 ...
- python类的静态属性和静态方法_详解Python中的静态方法与类成员方法
前言 因为Python的水平目前一直是处于能用阶段,平时写的脚本使用的Python的写法也比较的简单,没有写过稍微大一点的项目.对Python中的类,类之间的组织关系,整个项目中类之间如何耦合还缺乏认 ...
- python中静态变量和静态方法_【开发者笔记】python中的类方法(@classmethod)和静态方法(@staticmethod)...
在java.c#等高级语言中我们用static来定义静态方法和静态变量,那么在python中如何定义静态方法和静态变量呢. python提供了@classmethod和@staticmethod来定义 ...
- Python中纠结处之其一—— 静态方法、类方法
转身投入Python有一周左右的日子了.这一周不能算是很仔细的去研究它,用比喻的话,还在学习骑车的阶段,未及拆车和造车这样高深. 但此时就有了让我产生纠结之处.查阅了一些已对这点做比较的博文,对其有所 ...
- Python中必学知识点:类方法、实例方法和静态方法
在面向对象编程中,类和实例是两个非常重要的概念,类是一个泛指的模型化的概念,如人员. 通过类可以创建实例,实例指某一个具体的对象,如张三. class Person(object): # 定义类 pa ...
- python中的静态方法如何调用_关于Python中如何使用静态、类、抽象方法的权威指南(译)...
对于Python中静态.类.抽象方法的使用,我是一直很迷糊的.最近看到一篇技术文章对这方面解释的很好,在此翻译一下,加深印象,也为有需要的同学提供一个方便. Python中方法是如何工作的: 方法即函 ...
- 浅谈python中的一般方法、静态方法(staticmethod)和类方法(classmethod)
我们先来简单谈谈python类中一般方法.静态方法和类方法的区别. 1.类中的一般方法 一般方法在定义的时候,需要有表示类实例的参数(通常以self表示,例如def foo(self,arg1,arg ...
最新文章
- XamarinAndroid组件教程设置动画的时长参数
- 第十一届山东省大学生程序设计竞赛(热身赛)Mika with Cherry Cake
- Python常见数据结构整理
- python入门学习:4.if语句
- 使用Spring 3.2的DeferredResult进行长轮询
- Python3对IP进行查询
- 拓端tecdat|R语言自适应平滑样条回归分析
- Python多线程实例
- 塑料划分PP PE PS PA ABS PVC
- C# :弧度角度转换
- 虚拟机ping通主机步骤_6在购买虚拟主机服务之前,请按照操作步骤进行操作
- K-Stack 2021牛客多校2
- 淘宝京东类电商评论标签化的思路
- FastJson - JSONObject 如何设置成有序?(如:LinkedHashMap)
- 刷问卷星调查问卷_如何通过回答快速调查问卷从Google获得免费资金
- JavaScript 页面资源加载:onload,onerror
- 如何阻止电脑下载安装垃圾软件?阻止电脑下载垃圾软件方法
- 【Matlab安装】Mac系统安装MATLAB 2020a
- 使用Nextcloud搭建私人云盘,并内网穿透实现公网远程访问
- 安装DXSDK_Jun10.exe出错
热门文章
- 写5个不同的自己的函数,来截取一个全路径的文件的扩展名,允许封装php库中已有的函数。
- python构建bp神经网络_鸢尾花分类(一个隐藏层)__1.数据集
- 团队作业8----第二次项目冲刺(beta阶段)5.25
- SQLite的局限性
- ubuntu11.10安装mysql+handlersocket
- 在save中重写 AdminModel 方法 和 Signals
- 全球 MEDC 2007 举行日期
- CVE-2015-1635(MS15-034)-HTTP.sys远程代码执行复现
- 如何给multicraft装PHP,我的世界Linux搭建Multicraft网页后台教程更新和添加服务端文件...
- 总结 创建领取 微信会员卡 踩过的坑