python实例方法、静态方法、类方法
2017-04-17 21:08
435 查看
class Foo(object): def test(self)://定义了实例方法 print("object") @classmethod def test2(clss)://定义了类方法 print("class") @staticmethod def test3()://定义了静态方法 print("static")
1、实例方法就是类的实例能够使用的方法。实例方法的两种调用方式:
ff.test();//通过实例调用 Foo.test(ff)//直接通过类的方式调用,但是需要自己传递实例引用
2、静态方法是一种普通函数,就位于类定义的命名空间中,它不会对任何实例类型进行操作。使用装饰器@staticmethod定义静态方法。类对象和实例都可以调用静态方法,
类方法的调用方式:
Foo.test2();
如果Foo有了子类并且子类覆盖了这个类方法,最终调用会调用子类的方法并传递的是子类的类对象。
class Foo2(Foo): @classmethod def test2(self): print(self) print("foo2 object") f2=Foo2() print(f2.test2())
输出是:
<class '__main__.Foo2'> foo2 object
3、类方法是将类本身作为对象进行操作的方法。类方法使用@classmethod装饰器定义,其第一个参数是类,约定写为cls。类对象和实例都可以调用类方法,
静态方法的调用方式:
ff.test3()
归纳如下:
调用方式:
三种方法都可以通过实例来调用
普通方法不能通过类名调用,但是静态方法和类方法是可以的
权限:
静态方法和类方法无法访问实例属性
类方法可以访问类属性,但是静态方法不可以访问类属性
#普通方法,可以通过self访问实例属性 def normalMethod(self,data) #类方法,可以通过cls访问类属性 @classmethod def classMethod(cls,data) #静态方法,不可以访问,通过传值的方式 @staticmethod def staticMethod(data)
相关文章推荐
- python面向对象编程(2)—— 实例属性,类属性,类方法,静态方法
- python中的实例方法、静态方法、类方法、类变量和实例变量浅析
- python 实例方法,类方法,静态方法
- Python绑定方法,未绑定方法,类方法,实例方法,静态方法
- python实例方法,类方法和静态方法
- python中类方法、类实例方法、静态方法的使用与区别
- 【Python基础】Python面向对象 - 3 - 新类,静态方法,类方法,实例方法
- Python 实例方法,类方法和静态方法
- Python Class 的实例方法/类方法/静态方法
- Python的静态方法和类成员方法都可以被类或实例访问,两者概念不容易理清,但还是有区别的
- python中类方法、类实例方法、静态方法的使用与区别
- python——实例方法、静态方法、类方法、类变量和实例变量浅析
- Python:类属性,实例属性,私有属性与静态方法,类方法,实例方法
- python中类方法、类实例方法、静态方法的使用与区别
- python中的实例方法、静态方法、类方法、类变量和实例变量浅析
- python中类方法、类实例方法、静态方法的使用与区别
- python静态方法实例
- Python学习笔记——实例方法和静态方法
- Python:类属性,实例属性,私有属性与静态方法,类方法,实例方法
- Python中类、实例和类方法、静态方法、实例方法的关系