数据挖掘Python基础之面向对象

3,186 阅读4分钟

前言

之前我们已经学习了Python基本的数据类型,函数与文件读写,接下来我们就来看看Python的面向对象的编程,如果学过类似于Java这种面向对象的编程语言,学起来对比Python的面向对象就会感觉十分的容易,作为一门脚本语言,Python在面向对象方面相较于java更加简洁和方便,少了很多的约束。

创建对象

和其他语言一样Python使用class关键字来声明一个类,类名采用驼峰命名法,首字母大写。

class Animal:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def run(self):
        print(self.name + " is running")

__init__()方法是必不可少的,这是为了在实例化对象

正如上面代码所示,Pyhton类中__init__()方法是必不可少的,这是为了实例化对象初始化的,有点类似于Java中的构造函数。__init__()方法中self是必不可少的,且必须放在第一位,就是本身的一个引用。

创建实例

Python通过以下方法实例化对象,不需要使用new关键字。

class Animal:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def run(self):
        print(self.name + " is running")


dog = Animal('lily'2)

访问属性和方法

Python中属性和方法都可以直接访问

class Animal:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def run(self):
        print(self.name + " is running")


dog = Animal('lily'2)
print(dog.age)
print(dog.name)
dog.run()

给属性添加默认值

Python可以给属性设置默认值,这样在初始化时就不用再传入参数了。

class Animal:
    def __init__(self, age):
        self.name = 'Lily'
        self.age = age

    def run(self):
        print(self.name + " is running")

修改属性的值

Pyhton可以有两种方法来修改属性的值,首先可以通过直接访问修改属性值。

class Animal:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def run(self):
        print(self.name + " is running")


dog = Animal('lily'2)
dog.name = 'Harry'
dog.age = 3
print(dog.age)
print(dog.name)
dog.run()

其结果如下图所示

还可以通过方法来更改属性值,类似于Java中的setter。

class Animal:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def run(self):
        print(self.name + " is running")

    def update_name(self, name):
        self.name = name


Dog = Animal('Harry'2)
Dog.update_name('Lily')
Dog.run()

继承父类

Python中也可以继承,只不过没有使用extends关键字,而是直接使用括号。其中super().__init__(name, age)将子类与父类联系到了一起。

class Animal:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def run(self):
        print(self.name + " is running")


class Dog(Animal):
    def __init__(self, name, age, leg):
        super().__init__(name, age)
        self.leg = 4


Harry = Dog("Harry"24)
print(Harry.leg)

重写方法

Python中重写方法比较简单,如果子类中有与父类同名的函数,子类的实例调用函数时直接调用子类的函数。

class Animal:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def run(self):
        print(self.name + " is running")

    def update_name(self, name):
        self.name = name


class Dog(Animal):
    def __init__(self, name, age, leg):
        super().__init__(name, age)
        self.leg = 4

    def run(self):
        print("Dog is running")


Harry = Dog("Harry"24)
Harry.run()

最后

点赞就是最大的支持,更多文章和资料可以关注微信公众号QStack。