前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >【深度学习】 Python 和 NumPy 系列教程(八):Python类(初始化、属性、方法、继承、多态、类变量、静态方法、魔术方法)

【深度学习】 Python 和 NumPy 系列教程(八):Python类(初始化、属性、方法、继承、多态、类变量、静态方法、魔术方法)

作者头像
Qomolangma
发布2024-07-29 21:19:14
发布2024-07-29 21:19:14
8000
代码可运行
举报
文章被收录于专栏:深度学习深度学习
运行总次数:0
代码可运行

一、前言

Python是一种高级编程语言,由Guido van Rossum于1991年创建。它以简洁、易读的语法而闻名,并且具有强大的功能和广泛的应用领域。Python具有丰富的标准库和第三方库,可以用于开发各种类型的应用程序,包括Web开发、数据分析、人工智能、科学计算、自动化脚本等。

Python本身是一种伟大的通用编程语言,在一些流行的库(numpy,scipy,matplotlib)的帮助下,成为了科学计算的强大环境。本系列将介绍Python编程语言和使用Python进行科学计算的方法,主要包含以下内容:

  • Python:基本数据类型、容器(列表、元组、集合、字典)、函数、类
  • Numpy:数组、数组索引、数据类型、数组数学、广播
  • Matplotlib:绘图,子图,图像
  • IPython:创建笔记本,典型工作流程

二、实验环境

Python 3.7

运行下述命令检查Python版本

代码语言:javascript
代码运行次数:0
复制
 python --version 

三、Python类(Class)

1、初始化方法(__init__

代码语言:javascript
代码运行次数:0
复制
class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

person = Person("Alice", 25)
print(person.name)  # 输出: Alice
print(person.age)  # 输出: 25

__init__方法用于初始化Person类的对象。通过self.name = nameself.age = age语句,将传递给构造函数的参数赋值给对象的属性。

2、属性和实例变量

代码语言:javascript
代码运行次数:0
复制
class Circle:
    def __init__(self, radius):
        self.radius = radius

circle = Circle(5)
print(circle.radius)  # 输出: 5

Circle类具有一个属性radius,并且在初始化方法中使用传递的参数对其进行赋值。通过circle.radius可以访问对象的属性。

3、方法和实例方法

代码语言:javascript
代码运行次数:0
复制
class Dog:
    def __init__(self, name):
        self.name = name

    def bark(self):
        print(f"{self.name} is barking!")

dog = Dog("Buddy")
dog.bark()  # 输出: Buddy is barking!

Dog类具有一个方法bark,通过self.name访问对象的属性,并输出相应的信息。

4、继承

代码语言:javascript
代码运行次数:0
复制
class Animal:
    def __init__(self, name):
        self.name = name

    def eat(self):
        print(f"{self.name} is eating.")

class Dog(Animal):
    def bark(self):
        print("Woof!")

dog = Dog("Buddy")
dog.eat()  # 输出: Buddy is eating.
dog.bark()  # 输出: Woof!

Dog类继承自Animal类,并且可以使用Animal类中定义的方法和属性。子类可以添加新的方法,如bark

5、多态

代码语言:javascript
代码运行次数:0
复制
class Animal:
    def __init__(self, name):
        self.name = name

    def make_sound(self):
        pass

class Dog(Animal):
    def make_sound(self):
        print("Woof!")

class Cat(Animal):
    def make_sound(self):
        print("Meow!")

animals = [Dog("Buddy"), Cat("Whiskers")]

for animal in animals:
    animal.make_sound()

Animal类具有一个make_sound方法,但是在子类中具有不同的实现方式。通过遍历animals列表,可以调用不同类的make_sound方法实现多态。

6、类变量和静态方法

代码语言:javascript
代码运行次数:0
复制
class Circle:
    pi = 3.14159

    def __init__(self, radius):
        self.radius = radius

    @staticmethod
    def calculate_area(radius):
        return Circle.pi * radius ** 2

circle = Circle(5)
print(circle.calculate_area(5))  # 输出: 78.53975
print(Circle.calculate_area(5))  # 输出: 78.53975

pi是一个类变量,被所有实例共享。calculate_area是一个静态方法,可以通过类名或实例来调用。

7、魔术方法

代码语言:javascript
代码运行次数:0
复制
class Person:
    def __init__(self, name):
        self.name = name

    def __str__(self):
        return f"Person: {self.name}"

person = Person("Alice")
print(person)  # 输出: Person: Alice

__str__是一个魔术方法,用于返回对象的字符串表示。通过在类中定义__str__方法,可以自定义对象的字符串输出形式。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-10-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、前言
  • 二、实验环境
  • 三、Python类(Class)
    • 1、初始化方法(__init__)
    • 2、属性和实例变量
    • 3、方法和实例方法
    • 4、继承
    • 5、多态
    • 6、类变量和静态方法
    • 7、魔术方法
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档