面向对象

继承
python和Java一样也是一种面向对象的语言,同样特点都是封装、继承与多态。所以它们的特点也是具有很大的相似性的,这里主要说一些语法吧,功能特点几乎是一样的

先来看一个例子,python实现继承的例子:

class Person():
    def study(self):
        print("我是你爹")

class Student(Person):
    def study(self):
        print("我是你儿子")

stu = Student()
stu.study()
super(Student,stu).study()

python一样是可以多继续的,子类重写父类的方法,可以通过super来调用父类方法
Python基础总结(二)_python
类对象
在java中每一个实体类都有它的类对象,python中也一样,属性引用使用和 Python 中所有的属性引用一样的标准语法:obj.name只不过它的每个方法都会自带一个参数self,你可以把这个参数看作类实例,它就和Java中的构造函数一样,它的每个方法都必须带一个self,但是在实例的时候是不要实现的,我们可以通过这些方法给类的属性设值
例如,我为了给对象赋值,给它加了两个参数,它的self是不需要我们操作的:

class Complex:
    def __init__(self, realpart, imagpart):
        self.r = realpart
        self.i = imagpart
x = Complex(3.0, -4.5)
print(x.r, x.i)   # 输出结果:3.0 -4.5

init()初始化方法,就相当于java中的无参构造函数,你只要实例化了它就会自动调用,类定义了 init() 方法,类的实例化操作会自动调用 init() 方法

__双下划线是用来定义私有属性的,就相当于java中的private,可以用来定义方法和属性,也就是不能 通过外部来访问的,如果访问就会报错

class Stu():
    def __myMethod(self):
        print("我是私有方法")

stu=Stu
stu.__myMethod()

Python基础总结(二)_面向对象_02
python中还提供了一些类的专属方法:

init : 构造函数,在生成对象时调用
del : 析构函数,释放对象时使用
repr : 打印,转换
setitem : 按照索引赋值
getitem: 按照索引获取值
len: 获得长度
cmp: 比较运算
call: 函数调用
add: 加运算
sub: 减运算
mul: 乘运算
truediv: 除运算
mod: 求余运算
pow: 乘方

面向对象的总结就到这了…