python的实例方法,类方法和静态方法区别

class foo(object):
    def test(self):#这是实例方法
        print(‘object‘)
    @classmethod#这是类方法
    def test2(clss):
        print(‘class‘)
    @staticmethod#这是静态方法
    def test3():
        print(‘static‘)

#实例方法的访问方式
ff=foo()
ff.test()#实例方法可以通过实例化类然后实例来调用
foo.test(ff)#也可以通过类的方式调用,但是需要在调用的时候自己把实例化传进去

#类方法的访问方式
foo.test2()#类方法可以直接调用,和实例化方法一样

#静态方法调用
ff.test3()

单从调用情况来看,类方法和静态方法一样,也和实例方法一样,实例方法还多了一个调用方式

时间: 2024-12-07 17:56:36

python的实例方法,类方法和静态方法区别的相关文章

python类:类方法和静态方法

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

python中的类方法、静态方法、对象方法

注:以下都是以公有为前提,私有方法只能在类内部调用,不需多讲. 1.对象方法 这种方法都有一个默认参数:self  这代表实例的这个对象 def __init__(self): print("初始化对象") 类是不能直接调用对象方法: class User(object): name = 'zs' def __init__(self): print("初始化对象") User.__init__() 这样调用抛出一个错误:TypeError: __init__() m

Python的实例方法,类方法,静态方法之间的区别及调用关系

如果只看这个图,很多人可能会看的一头雾水,特别是学过完全面向对象语言的同学, Python 是双面向的,既可以面向函数编程,也可以面向对象编程,所谓面向函数就是单独一个. py 文件,里面没有类,全是一些函数,调用的时候导入模块,通过模块名.函数名()即可调用,完全不需要类,那么你可能会问,那要类还有什么毛用? 类就是用来面向对象编程啦,类可以有自己的属性,类可以创建很多实例,每个实例可以有不同的属性,这也就保存了很多私有的数据,总之都有存在的必要. 再来看上面这张图,在类里面定义的函数就是方法

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

class A: # 实例方法: def f1(self): return 1 # 类方法: @classmethod def f2(cls): return 2 # 静态方法 @staticmethod def f3(): return 3 a = A() a.f1() # => 1 A.f1(a) # => 1 a.f2() # => 2 A.f2() # => 2 a.f3() # => 3 A.f3() # => 3 实例方法(也叫成员方法,用于描述对象的固有行

python中实例方法,类方法,静态方法的区别

Python中至少有三种比较常见的方法类型,即实例方法,类方法.静态方法.它们是如何定义的呢?如何调用的呢?它们又有何区别和作用呢?且看下文. 首先,这三种方法都定义在类中.下面我先简单说一下怎么定义和调用的.(PS:实例对象的权限最大.) 实例方法 定义:第一个参数必须是实例对象,该参数名一般约定为“self”,通过它来传递实例的属性和方法(也可以传类的属性和方法): 调用:只能由实例对象调用. 类方法 定义:使用装饰器@classmethod.第一个参数必须是当前类对象,该参数名一般约定为“

Python 实例方法、类方法、静态方法的区别与作用

Python中至少有三种比较常见的方法类型,即实例方法,类方法.静态方法.它们是如何定义的呢?如何调用的呢?它们又有何区别和作用呢? 首先,这三种方法都定义在类中.下面先简单说一下怎么定义和调用的. 实例方法 定义:第一个参数必须是实例对象,该参数名一般约定为“self”,通过它来传递实例的属性和方法(也可以传类的属性和方法): 调用:只能由实例对象调用. 类方法 定义:使用装饰器@classmethod.第一个参数必须是当前类对象,该参数名一般约定为“cls”,通过它来传递类的属性和方法(不能

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

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

Python之路-面向对象&继承和多态&类属性和实例属性&类方法和静态方法

一.面向对象 编程方式 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发"更快更好更强-" 什么是面向对象 面向对象就不像面向过程那样按照功能划分模块了,它所关注的是软件系统有哪些参与者,把这些参与者称为对象,找出这些软件系统的参与者也就是对象之后,分析这些对象有哪些特征.哪些行为,以及对象之间的关系,所以说面向对象的开发核心是对象 什么是类 面向对象编程的两个重要的概念:类和对象 类是

python 类方法与静态方法

@classmethod : 类方法 @staticmethod : 静态方法 类方法和静态方法的调用一样,都是通过类就可以直接调用(类名.方法名()). 区别: 类方法,需要传入该类,定义类方法的时候要传一个默认的参数cls.是一个函数修饰符,它表示接下来的是一个类方法,而对于平常我们见到的则叫做实例方法.类方法的第一个参数cls, 静态方法则不用.第一个参数是self,表示该类的一个实例. 原文地址:https://www.cnblogs.com/tingxin/p/12216022.htm