python的类
首先了解一下python方法的定义
python中不需要使用分号“;”结尾,但是遵循严格的格式,代码格式的缩进必须保持正确
Python中的方法定义什么简单
def methodName():
代码块
python中的类定义
类的定义的一般语法
class ClassName:
[语法块]
以上就是类的定义的语法,十分简单,主要来看语法块中的具体内容
-
在类中语法块的第一部分应该声明一个构造函数,构造函数的语法:
def __init__(self,para1,para2,...): self.para1 = para1 self.para2 = para2 .....
python将 "__ init __"方法作为构造函数,类似于java中的构造器,用于类的实例化,但是不同的是,python中将类中的属性声明在构造函数中,构造函数的参数 self 是必须带有的参数,不可省略,作用类似于java中的this,可以在实例化时初始化属性,也可以将参数赋值,如果队友某些属性只想让其在类中调用,并不想在类外被调用,可以声明为私有属性,声明方法是 在属性前加上两个下划线
__paras
-
类中方法的声明
类中方法的声明语法没有变化,但是在类中可以声明私有方法,静态方法和类方法
私有方法:通过在方法名的前面增加两个下划线
def __methodName(): pass
静态方法:使用装饰器语法
@staticmethod def methodName(): pass
类方法:使用装饰器语法
@classmethod def methodName(cls): pass
注意:类方法和静态方法前的装饰器不能有空格,而且类方法必须带有一个初始化参数,但是这个参数和构造函数的self参数不同,我们将这个参数形似的理解为是一个实例化对象,这样可以通过类直接调用类方法,而调用前不再需要实例化
面向对象的三大特征:
- 封装性
- 继承性
- 多态性
封装性:
封装性在代码中随处都可以体现,将特定的功能封装为一个方法供实例调用等
继承性:
顾名思义,即是子类可以继承来自父类的方法和属性,具体的语法也很简单,不需要写类似于java里的extends
class SubClass(BaseClass):
[语法块]
以上就是python中继承的语法,SubClass就是子类,括号内的BaseClasss就是父类
继承之后可以通过SubClass isinstance BaseClass 来判断子类是否属于父类,在java中采用的instanceof
多态性:
多态就是多种形态的意思,说明子类继承来自父类的方法后可以换种形态表现,通俗的来讲就是重写方法,这就类似于java中的方法重写override
在实现多态时,即在方法重写时,要注意,必须保证重写的方法名和参数保持一致