当前位置: 首页 > news >正文

Python类详解

作者制作不易,关注、点赞、收藏一下吧!

目录

1.Python 类的概念

1.1. 封装

1.2. 继承

1.3. 多态

2.Python 类的基本语法

3.类的特性

3.1.属性与方法

3.2.类方法与静态方法

3.3.特殊方法

3.4.继承

3.5.多态


1.Python 类的概念

在Python中,类是一种用于创建对象的蓝图或模板,它定义了一组相似的对象应该具有哪些属性和方法。类是面向对象编程(OOP)中的一个核心概念,它支持封装、继承和多态这三大特性,使得代码更加模块化、可重用且易于维护。

1.1. 封装

封装是指将数据和操作数据的方法绑定在一起,隐藏内部实现细节,并通过公共接口暴露给外部。这样做的好处是可以限制对对象内部状态的访问,提高安全性,同时也简化了对象的使用方式。

1.2. 继承

继承允许一个类(子类)继承另一个类(父类)的属性和方法,从而可以复用代码并扩展功能。子类不仅可以使用父类已有的功能,还可以覆盖或添加新的方法来适应更具体的需求。

1.3. 多态

多态是指允许不同类的对象对同一消息作出响应的能力。简单来说,就是同一个接口可以被不同的对象以不同的方式实现。这增加了程序的灵活性和扩展性。

2.Python 类的基本语法

创建一个简单的类:

class Person:def __init__(self, name, age):self.name = nameself.age = agedef print_(self):print(f"Hello, my name is {self.name} and I am {self.age} years old.")

__init__() 方法是一个特殊方法,称为构造函数或初始化方法,在创建新实例时自动调用。
self() 参数代表当前实例本身,通过它可以访问类的属性和方法。
print_() 是一个普通方法,用于打印个人信息。


创建对象并调用方法:

apk = Person("apk", 1)
apk.print_()  # 输出: Hello, my name is apk and I am 1 years old.

apk 是创建的对象,apk.print_() 在调用方法。

3.类的特性

3.1.属性与方法

属性:类中定义的变量称为属性,可以在类的任何地方访问。
方法:类中定义的函数称为方法,通常用来实现特定的功能。

3.2.类方法与静态方法

类方法:通过装饰器 @classmethod 定义,第一个参数通常是 cls,表示类本身,而不是实例对象。
静态方法:通过装饰器 @staticmethod 定义,不传递类或实例作为第一个参数。

3.3.特殊方法

Python 中有一些特殊方法(也叫魔术方法),它们以双下划线开头和结尾,如 __init__、__str__ 等,用于实现类的一些内置行为。

3.4.继承

继承由父类( 基类 )和子类( 派生类 )构成。

定义一个父类animal和一个子类cat:

class animal:def speak(self):print("I am a animal.")def print_(self):print("Hello!")class cat(animal):def speak(slef):print("I am a cat.")
an = animal()
ca = cat()
an.speak()
an.print_()
ca.speak()
ca.print_()
# 运行结果:
# I am a animal.
# Hello!
# I am a cat.
# Hello!

这里 cat类 继承自 animal类 ,并覆盖了 speak() 方法。

3.5.多态

def duotai(animal_type):animal_type.speak()
duotai(ca)
# 运行结果:
# I am a cat.


http://www.mrgr.cn/news/17339.html

相关文章:

  • python办公自动化:使用`Python-PPTX`添加图表
  • RoadLib---这两年值得一看的建图定位项目
  • MC药水酿造
  • Mac系统内存怎么清理:一篇让你轻松摆脱卡顿的指南
  • 【Unity实战】Visual Studio Debug失败
  • 【Redis】Redis 客户端开发与 Java 集成:RESP协议解析与实战操作
  • 毕业论文免费查重网站
  • MicroNet关键代码解读(Micro-block与Dynamic Shift-Max的实现代码)
  • postgis
  • Vue 全局数据:提升开发效率的利器
  • Go语言的前世今生与未来展望
  • ⾳频重采样及基本概念
  • 数据结构:(LeetCode101)对称二叉树
  • 驱动开发系列17 - PCI总线
  • World of Warcraft [CLASSIC][80][Grandel]Sapphire Hive Drone
  • C语言中的预处理指令的其中之一——#line
  • 《JavaEE进阶》----7.<SpringMVC实践项目:【登录页面的验证】>
  • 产品入门篇笔记
  • 系统编程--进程间通信
  • 嵌入式Linux C应用编程指南-进程、线程(速记版)