python 类方法与静态方法

@classmethod : 类方法

@staticmethod : 静态方法

类方法和静态方法的调用一样,都是通过类就可以直接调用(类名.方法名())。

区别:

  类方法,需要传入该类,定义类方法的时候要传一个默认的参数cls。是一个函数修饰符,它表示接下来的是一个类方法,而对于平常我们见到的则叫做实例方法。类方法的第一个参数cls,

  静态方法则不用。第一个参数是self,表示该类的一个实例。

原文地址:https://www.cnblogs.com/tingxin/p/12216022.html

时间: 2024-11-09 03:49:53

python 类方法与静态方法的相关文章

python类方法和静态方法

C++的静态方法是用static关键字,python j是没用static的. python中实现静态方法和类方法都是依赖于python的修饰器来实现的. class MyClass: def  method(self): print("method") @staticmethod def  staticMethod(): print("static method") @classmethod def classMethod(cls): print("cl

Python类方法、静态方法和实例方法的区别

1 #-*- encoding:utf-8 -*- 2 3 class Date(object): 4 def __init__(self, year, month, day): 5 self.year = year 6 self.month = month 7 self.day = day 8 9 #实例方法 10 def tomorrow(self): 11 self.day +=1 12 13 #静态方法(缺点:需要写入固定的类方法名Date) 14 @staticmethod 15 de

python类方法/实例方法/静态方法

类方法:隐式接收第一个参数为类本身的方法,通过类或实例皆可调用,在类方法定义中不能访问实例属性及调用实例方法,可以访问已定义的类属性和调用已定义的类方法,使用@classmethod装饰器进行定义: 1 class Test(object): 2 @classmethod 3 def method(cls,*args,**kw):#此处cls即代表Test类本身 4 pass 实例方法:隐式接收第一个参数为实例本身的方法,只能通过实例进行调用,在实例方法定义中可以访问自身已定义过的实例属性及类属

python中的静态方法和类方法

静态方法独立于类和类的实例,它是定义在类作用域内的方法.可以由类和实例直接调用. 类方法和静态方法都要使用装饰器来定义,定义的基本格式是: @staticmethod def <function name>(): #do something 类方法定义的基本格式是: @ classmethod def <function name>(cls): #do something 类方法与成员方法不同的是,它需要传入参数cls,cls代表类. class Myclass(): x='cla

python 实例方法,类方法和静态方法

在学习python代码时,看到有的类的方法中第一参数是cls,有的是self,经过了解得知,python并没有对类中方法的第一个参数名字做限制,可以是self,也可以是cls,不过根据人们的惯用用法,self一般是在实例方法中使用,而cls则一般在类方法中使用,在静态方法中则不需要使用一个默认参数.在下面的代码中,InstanceMethod类的方法中,第一个参数是默认的self,在这里可以把self换成任何名字来表示,不会有任何影响.在类调用的时候,需要满足参数的个数要求(参数中含有*args

python类:类方法和静态方法

http://blog.csdn.net/pipisorry/article/details/49516185 面相对象程序设计中,类方法和静态方法是经常用到的两个术语.逻辑上讲:类方法是只能由类名调用:静态方法可以由类名或对象名进行调用.在C++中,静态方法与类方法逻辑上是等价的,只有一个概念,不会混淆.在python中,方法分为三类实例方法.类方法.静态方法. @classmethod和@staticmethod 他们的使用场景并不一样.在python中,两种方法的主要区别在于参数 类内部普

python类的静态方法和类方法区别

# python类的静态方法和类方法区别 ## 先看语法,python 类语法中有三种方法,实例方法,静态方法,类方法. 本文由黄哥python培训黄哥所写. # coding:utf-8 class Foo(object): """类三种方法语法形式""" def instance_method(self): print("是类{}的实例方法,只能被实例对象调用".format(Foo)) @staticmethod def

python基础学习——静态方法、类方法

最近温故了一下 python 基础知识,有新的理解,整理在此,以便以后查阅或纠正. 本文描述一下静态方法和类方法,引出装饰器的概念,在下一篇博文中记录. 先举例,看效果: 1 class MyClass: 2 def smeth(): 3 print('This is a static method') 4 smeth = staticmethod(smeth) 5 6 def cmeth(cls): 7 print('This is a class method of', cls) 8 cme

Python学习手册之数据封装、类方法和静态方法

在上一篇文章中,我们介绍了 Python 的内部方法.操作符重载和对象生命周期,现在我们介绍 Python 的数据封装.类方法和静态方法.查看上一篇文章请点击:https://www.cnblogs.com/dustman/p/10017357.html 数据封装面向对象编程的一个关键部分是封装,它涉及将相关变量和函数打包到一个简单易用的对象(类的一个实例)中.一个相关的概念是隐藏数据,它隐藏了类的实现细节,并提供一个干净的标准接口.在其它编程语言中,通常是通过私有方法和属性完成的,这些方法和属