python的类方法和静态方法
本文实例讲述了python的类方法和静态方法。分享给大家供大家参考。具体分析如下:
python没有和C++中static关键字,它的静态方法是怎样的呢?还有其它语言中少有的类方法又是神马?
python中实现静态方法和类方法都是依赖于python的修饰器来实现的。
class MyClass:
def method(self):
print("method")
@staticmethod
def staticMethod():
print("static method")
@classmethod
def classMethod(cls):
print("class method")
大家注意到普通的对象方法、类方法和静态方法的去别了吗?
对象方法有self参数,类方法有cls参数,静态方法是不需要这些附加参数的。
在C++中是没有类方法着个概念的的
class A(object):
"This ia A Class"
@staticmethod
def Foo1():
print("Call static method foo1()\n")
@classmethod
def Foo2(cls):
print("Call class method foo2()")
print("cls.__name__ is ",cls.__name__)
A.Foo1();
A.Foo2();
结果是:
Call static method foo1()
Call class method foo2()
cls.__name__ is A
希望本文所述对大家的Python程序设计有所帮助。
相关推荐
-
Python探索之静态方法和类方法的区别详解
面相对象程序设计中,类方法和静态方法是经常用到的两个术语. 逻辑上讲:类方法是只能由类名调用:静态方法可以由类名或对象名进行调用. python staticmethod and classmethod Though classmethod and staticmethod are quite similar, there's a slight difference in usage for both entities: classmethod must have a reference to
-
python中的实例方法、静态方法、类方法、类变量和实例变量浅析
注:使用的是Python2.7. 一.实例方法 实例方法就是类的实例能够使用的方法.如下: 复制代码 代码如下: class Foo: def __init__(self, name): self.name = name def hi(self): print self.name if __name__ == '__main__': foo01 = Foo('letian') foo01.hi() print type(Foo) p
-
浅谈python中的实例方法、类方法和静态方法
在学习python代码时,看到有的类的方法中第一参数是cls,有的是self,经过了解得知,python并没有对类中方法的第一个参数名字做限制,可以是self,也可以是cls,不过根据人们的惯用用法,self一般是在实例方法中使用,而cls则一般在类方法中使用,在静态方法中则不需要使用一个默认参数.在下面的代码中,InstanceMethod类的方法中,第一个参数是默认的self,在这里可以把self换成任何名字来表示,不会有任何影响.在类调用的时候,需要满足参数的个数要求(参数中含有*args
-
详解Python中的静态方法与类成员方法
前言 因为Python的水平目前一直是处于能用阶段,平时写的脚本使用的Python的写法也比较的简单,没有写过稍微大一点的项目.对Python中的类,类之间的组织关系,整个项目中类之间如何耦合还缺乏认识.打算读一读别人写的Python代码来学习一下Python在工程中的应用,提升自己的技术水平.选取的Python代码是Python爬虫代码,github地址.这个代码刚好是符合跳出我的舒适区的水平的代码,因此很适合我目前的水平来学习. 在Python2.4之后,主要使用装饰器来实现静态方法和类方法
-
python的类方法和静态方法
本文实例讲述了python的类方法和静态方法.分享给大家供大家参考.具体分析如下: python没有和C++中static关键字,它的静态方法是怎样的呢?还有其它语言中少有的类方法又是神马? python中实现静态方法和类方法都是依赖于python的修饰器来实现的. 复制代码 代码如下: class MyClass: def method(self): print("method") @staticmethod def stat
-
深入解析python中的实例方法、类方法和静态方法
1.实例方法/对象方法 实例方法或者叫对象方法,指的是我们在类中定义的普通方法. 只有实例化对象之后才可以使用的方法,该方法的第一个形参接收的一定是对象本身 2.静态方法 (1).格式:在方法上面添加 @staticmethod (2).参数:静态方法可以有参数也可以无参数 (3).应用场景:一般用于和类对象以及实例对象无关的代码. (4).使用方式: 类名.类方法名(或者对象名.类方法名). 定义一个静态方法 class Game: @staticmethod def menu(): prin
-
Python 实例方法、类方法、静态方法的区别与作用
Python中至少有三种比较常见的方法类型,即实例方法,类方法.静态方法.它们是如何定义的呢?如何调用的呢?它们又有何区别和作用呢?且看下文. 首先,这三种方法都定义在类中.下面我先简单说一下怎么定义和调用的.(PS:实例对象的权限最大.) 实例方法 定义:第一个参数必须是实例对象,该参数名一般约定为"self",通过它来传递实例的属性和方法(也可以传类的属性和方法): 调用:只能由实例对象调用. 类方法 定义:使用装饰器@classmethod.第一个参数必须是当前类对象,该参数名一
-
Python实例方法、类方法、静态方法的区别与作用详解
本文实例讲述了Python实例方法.类方法.静态方法的区别与作用.分享给大家供大家参考,具体如下: Python中至少有三种比较常见的方法类型,即实例方法,类方法.静态方法.它们是如何定义的呢?如何调用的呢?它们又有何区别和作用呢?且看下文. 首先,这三种方法都定义在类中.下面我先简单说一下怎么定义和调用的.(PS:实例对象的权限最大.) 实例方法 定义:第一个参数必须是实例对象,该参数名一般约定为"self",通过它来传递实例的属性和方法(也可以传类的属性和方法): 调用:只能由实例
-
Python面向对象之静态属性、类方法与静态方法分析
本文实例讲述了Python面向对象之静态属性.类方法与静态方法.分享给大家供大家参考,具体如下: 1. 静态属性:在函数前加@property,将函数逻辑"封装"成数据属性,外部直接调用函数名,如同调用属性一样.这个函数是可以调用对象和类的属性的. # -*- coding:utf-8 -*- class Room: def __init__(self,name,owner,width,length): self.name = name self.owner = owner self.
-
Python面向对象程序设计之静态方法、类方法、属性方法原理与用法分析
本文实例讲述了Python面向对象程序设计之静态方法.类方法.属性方法原理与用法.分享给大家供大家参考,具体如下: 前言:认为方法与函数同意义,由于这里使用method,所以称为方法 静态方法: 使用@staticmethod来定义静态方法. 静态方法:类和实例都可以调用的方法,实际上跟类没什么关系了,对于这种不太相关的就使用静态方法[用实例和类调用没有区别] class Dog(object): def __init__(self,name): self.name=name def talk(
-
Python 类方法和静态方法之间的区别
目录 前言 1. 实例方法 instance method 2. 类方法 class method 3. 静态方法 static method 前言 类中不仅可以有 methods,还可以有变量,这些变量称为类属性,例如如下代码中 Book 类的 TYPES 即为类属性. 类中的方法分为3类: 1. 实例方法 instance method 不使用装饰器类中的所有方法,如果第一个参数是 self,就是 instance method, self 是创建的类实例,实例方法与实例即对象相关.(sel
-
Python实例方法与类方法和静态方法介绍与区别分析
目录 1.实例方法 2.类方法 3.静态方法 4.实例方法与类方法和静态方法的区别 1.实例方法 Python 的实例方法用得最多,也最常见.我们先来看 Python 的实例方法. class Kls(object): def __init__(self, data): self.data = data def printd(self): print(self.data) ik1 = Kls('leo') ik2 = Kls('lee') ik1.printd() ik2.printd() 输出
-
Python3.0中普通方法、类方法和静态方法的比较
一.语法区别 刚接触Python中的面向对象,对于类方法和静态方法难以区分,通过查找知乎.CSDN论坛,废了好大的劲思路才逐渐明朗,所以就总结顺便分享一下. 首先开始编辑代码 # 普通方法.类方法.静态方法的比较 # 普通方法.类方法.静态方法的比较 class Test: # 定义类Test的属性 name = 'python' content = '人生苦短,我用python!' def normal_method(self): # 普通方法访问类Text的属性 print(self.con
随机推荐
- jQuery常用数据处理方法小结
- JavaScript数据结构之二叉查找树的定义与表示方法
- Java class文件格式之常量池_动力节点Java学院整理
- Java编程中使用throw关键字抛出异常的用法简介
- C#控制台程序使用Log4net日志组件详解
- ThinkPHP模板中判断volist循环的最后一条记录的验证方法
- Zend Framework教程之分发器Zend_Controller_Dispatcher用法详解
- C#数字图像处理之图像缩放的方法
- mysql中向表中某字段追加字符串的方法
- vue增删改查的简单操作
- PHP session有效期session.gc_maxlifetime
- webpack配置sass模块的加载的方法
- js网页中的(运行代码)功能实现思路
- jquery实现初次打开有动画效果的网页TAB切换代码
- jQuery实现的简单悬浮层功能完整实例
- JavaScript高级程序设计 扩展--关于动态原型
- python实现linux下使用xcopy的方法
- 用js+cookie记录滚动条位置
- 详解如何让InstantClick兼容MathJax、百度统计等
- 13个实用的Apache Rewrite重写规则