Python中的实例方法,类方法, 静态方法

来源:互联网 发布:淘宝店铺运动服简介 编辑:程序博客网 时间:2024/06/06 16:06


python 是双面向的,即可以面向函数编程,也可以面向对象编程,所谓面向对象编程就是单独一个  .py  文件,里面没有类,全是一些函数,调用的时候导入模块,通过

模块名.函数名()调用,完全不需要类,而类作用是用来面向对象编程的,类可以有自己的属性,类可以创建多个实例,每个实例都可以有不同的属性,这也就保存了很多私有的数据。


如上图中,在类里面定义的函数就是方法,类方法需要@classmethod 修饰并且有个隐藏参数  cls ,实例方法必须有个参数 self ,静态方法必须要有 @staticmethod 修饰,类和实例都可以访问静态方法,实例可以访问实例方法也可以访问类方法,类可以访问类方法也可以访问实例方法,访问实例方法需要带参数 self。可以理解为类其实也是一个实例,类访问实例方法不带参数会报错,类本身可以访问函数,实例则不可以。



可总结为以下几点

1,在定义普通方法的时候,需要的参数是self。也就是把类的实例作为参数传递给方法,如果不写self的时候,就会报TypeError错误,表示传递的参数多了,其实也就是在调用类方法的时候,将实例作为参数传递了。在使用普通方法的时候,必须是使用实例来调用方法,不能使用类来调用方法,没有实例,实例方法是无法使用的。

2,在定义静态方法的时候,和模块中的方法没有什么不同,最大的不同就在于静态方法在类的命名空间中,并且在声明静态方法的时候,使用的标记为@staticmethod,表示为静态方法,在调用静态方法的时候,可以使用类名或者是实例名来调用,一般使用类名来调用。如 class.method() 或者 instance.method()

3,在定义类方法的时候 ,传递的参数为cls, 表示为类,此写法也可以变,但一般是写成cls,类的方法调用可以使用类,也可以使用实例,一般的情况下是使用类。

4,self表示类型为累的object,而cls表示为类就是class

5,在继承的时候,静态方法和类方法都会被子类继承,在进行重载类中的普通方法的时候,只要写上相同的名字即可重载

6,在重载调用父类方法的时候,最好是使用super来调用父类的方法,静态方法主要用来存放逻辑性的代码,基本在静态方法中,不会涉及到类额方法和类的参数,类方法是在传递参数的时候,传递的示类的参数,参数是必须在cls中进行传递、



阅读全文
0 0
原创粉丝点击