python 基础面向对象

╰+哭是因爲堅強的太久メ 2022-12-25 10:54 284阅读 0赞

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

前言

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

创建对象

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

  1. class Animal:
  2. def __init__(self, name, age):
  3. self.name = name
  4. self.age = age
  5. def run(self):
  6. print(self.name + " is running")
  7. 复制代码

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

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

创建实例

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

  1. class Animal:
  2. def __init__(self, name, age):
  3. self.name = name
  4. self.age = age
  5. def run(self):
  6. print(self.name + " is running")
  7. dog = Animal('lily', 2)
  8. 复制代码

访问属性和方法

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

  1. class Animal:
  2. def __init__(self, name, age):
  3. self.name = name
  4. self.age = age
  5. def run(self):
  6. print(self.name + " is running")
  7. dog = Animal('lily', 2)
  8. print(dog.age)
  9. print(dog.name)
  10. dog.run()
  11. 复制代码

给属性添加默认值

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

  1. class Animal:
  2. def __init__(self, age):
  3. self.name = 'Lily'
  4. self.age = age
  5. def run(self):
  6. print(self.name + " is running")
  7. 复制代码

修改属性的值

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

  1. class Animal:
  2. def __init__(self, name, age):
  3. self.name = name
  4. self.age = age
  5. def run(self):
  6. print(self.name + " is running")
  7. dog = Animal('lily', 2)
  8. dog.name = 'Harry'
  9. dog.age = 3
  10. print(dog.age)
  11. print(dog.name)
  12. dog.run()
  13. 复制代码

其结果如下图所示

8327ed06b22221cdfc21515ae0480cd4.png

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

  1. class Animal:
  2. def __init__(self, name, age):
  3. self.name = name
  4. self.age = age
  5. def run(self):
  6. print(self.name + " is running")
  7. def update_name(self, name):
  8. self.name = name
  9. Dog = Animal('Harry', 2)
  10. Dog.update_name('Lily')
  11. Dog.run()
  12. 复制代码

继承父类

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

  1. class Animal:
  2. def __init__(self, name, age):
  3. self.name = name
  4. self.age = age
  5. def run(self):
  6. print(self.name + " is running")
  7. class Dog(Animal):
  8. def __init__(self, name, age, leg):
  9. super().__init__(name, age)
  10. self.leg = 4
  11. Harry = Dog("Harry", 2, 4)
  12. print(Harry.leg)
  13. 复制代码

重写方法

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

  1. class Animal:
  2. def __init__(self, name, age):
  3. self.name = name
  4. self.age = age
  5. def run(self):
  6. print(self.name + " is running")
  7. def update_name(self, name):
  8. self.name = name
  9. class Dog(Animal):
  10. def __init__(self, name, age, leg):
  11. super().__init__(name, age)
  12. self.leg = 4
  13. def run(self):
  14. print("Dog is running")
  15. Harry = Dog("Harry", 2, 4)
  16. Harry.run()

发表评论

表情:
评论列表 (有 0 条评论,284人围观)

还没有评论,来说两句吧...

相关阅读

    相关 python面向对象基础

    python面向对象基础 什么是面向对象编程? 面向对象编程是一种程序设计的范式,它把程序当做不同对象的相互调用,是对现实世界建立的一种对象模型。 面向对象编程

    相关 Python 面向对象基础

    一、面向对象概述 如今主流的软件开发思想有两种:一个是面向过程,另一个是面向对象。面向过程出现得较早,典型代表为C语言,开发中小型项目的效率很高,但是很难适用于如今主流的

    相关 Python3面向对象基础

    Python是一种面向对象的脚本语言,所以它也提供了面向对象编程的所有基本特征:允许多继承的类继承机制、派生类可以重写它父类的任何方法、一个方法可以调用父类中同名的方法、对象可