百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

Python基础:面向对象编程!实例、类、静态级别的属性和方法

off999 2024-09-20 22:50 20 浏览 0 评论

大家好,我是钢铁老豆!今天我们要聊的话题是Python的面向对象编程(OOP),功能强大的编程范式!今天就来一起看看如何定义类及其不同类型的方法,祝人人都有对象,天天面向对象!

0. 类的关键字

Python 使用 class 关键字来定义类,你甚至可以不写任何方法,就定义了一个类。

class Car:
    pass  # 表空操作,什么都不做

在面向对象编程中,类允许定义或者说封装一组关联的属性(变量)和方法(函数)。

1. 定义和调用初始化方法

我们首先介绍一下初始化方法

Python 使用 __init__ 来定义如何初始化新建的实例对象,包括属性赋值、方法调用等,这个方法也称为类的构造器,参数列表中的self 表示实例本身,brand 是参数。

当我们调用类名(...)时,Python解释器首先为我们实例化了一个内存对象,然后就会调用这个初始化方法,我们只需要传入 self 以外的参数,因为Python解释器会自动为我们传入这个实例对象的引用。

class Car:
    def __init__(self, brand):
        self.brand = brand

car = Car('Tesla', )  # 实例化对象,同时调用初始化方法! 传入self以外的其他参数
print(car)  # 默认打印对象的内存地址
print(car.brand)  # 打印对象的实例属性

2. 定义和调用类属性、实例属性、实例方法、类方法、静态方法

现在我们给这个类继续添加一些属性和方法,按共享的级别来划分

  • 类属性:在类的所有方法之外定义,数据由所有实例共享。实例A修改类属性之后,实例B也能马上看到。
  • 实例属性:在实例方法中定义,可以在包括__init__在内的实例方法中初始化或修改,数据由实例本身独有。实例A、B的同名实例属性彼此看不到。
  • 实例方法:类内部使用 def 定义的函数,默认都是实例方法,首参 self 表实例本身,只能读写自己的实例属性,想同时读写类属性或方法可以直接改用类名如Car 或self.class` 引用类本身来调用
  • 类方法:使用@classmethod 装饰器定义的方法,首参 cls 表类本身,可以访问类属性,但不能访问任何实例属性
  • 静态方法:使用@staticmethod 装饰器定义的方法,没有特殊参数,不能访问实例属性,它是一种独立于类的工具函数。
class Car:
    wheels = 4  # 类属性

    def __init__(self, brand):
        self.brand = brand  # 实例属性

    def display(self):  # 实例方法
        print(f"This car is a {self.brand} and has {Car.wheels} wheels.")

    @classmethod
    def number_of_wheels(cls):  # 类方法
        print(f"All cars have {cls.wheels} wheels.")

    @staticmethod
    def make_sound():  # 静态方法
        print("Honk honk!")

        
car = Car("Tesla")  # 实例化对象,同时调用初始化方法! 传入self以外的其他参数
car.display()  # 调用实例方法,传入self以外的其他参数
Car.number_of_wheels()  # 调用类方法,传入cls以外的其他参数
Car.make_sound()  # 调用静态方法,跟普通函数传参一样

这样,你就可以通过不同的方法来控制你的对象了。看,多么简单!

以上就是今天的分享,希望对大家有所帮助!如果觉得有用,不妨点个赞、收藏、留言或关注我吧!每天学习一点Python小知识,这里有你感兴趣的基础、技能、数据、模型和AI。我是钢铁老豆,一个30岁转行IT、自学成为算法工程师、想用AI点亮孩子小小世界的Pythoner。

相关推荐

python入门到脱坑经典案例—清空列表

在Python中,清空列表是一个基础但重要的操作。clear()方法是最直接的方式,但还有其他方法也可以实现相同效果。以下是详细说明:1.使用clear()方法(Python3.3+推荐)...

python中元组,列表,字典,集合删除项目方式的归纳

九三,君子终日乾乾,夕惕若,厉无咎。在使用python过程中会经常遇到这四种集合数据类型,今天就对这四种集合数据类型中删除项目的操作做个总结性的归纳。列表(List)是一种有序和可更改的集合。允许重复...

Linux 下海量文件删除方法效率对比,最慢的竟然是 rm

Linux下海量文件删除方法效率对比,本次参赛选手一共6位,分别是:rm、find、findwithdelete、rsync、Python、Perl.首先建立50万个文件$testfor...

数据结构与算法——链式存储(链表)的插入及删除,

持续分享嵌入式技术,操作系统,算法,c语言/python等,欢迎小友关注支持上篇文章我们讲述了链表的基本概念及一些查找遍历的方法,本篇我们主要将一下链表的插入删除操作,以及采用堆栈方式如何创建链表。链...

Python自动化:openpyxl写入数据,插入删除行列等基础操作

importopenpyxlwb=openpyxl.load_workbook("example1.xlsx")sh=wb['Sheet1']写入数据#...

在Linux下软件的安装与卸载(linux里的程序的安装与卸载命令)

通过apt安装/协助软件apt是AdvancedPackagingTool,是Linux下的一款安装包管理工具可以在终端中方便的安装/卸载/更新软件包命令使用格式:安装软件:sudoapt...

Python 批量卸载关联包 pip-autoremove

pip工具在安装扩展包的时候会自动安装依赖的关联包,但是卸载时只删除单个包,无法卸载关联的包。pip-autoremove就是为了解决卸载关联包的问题。安装方法通过下面的命令安装:pipinsta...

用Python在Word文档中插入和删除文本框

在当今自动化办公需求日益增长的背景下,通过编程手段动态管理Word文档中的文本框元素已成为提升工作效率的关键技术路径。文本框作为文档排版中灵活的内容容器,既能承载多模态信息(如文字、图像),又可实现独...

Python 从列表中删除值的多种实用方法详解

#Python从列表中删除值的多种实用方法详解在Python编程中,列表(List)是一种常用的数据结构,具有动态可变的特性。当我们需要从列表中删除元素时,根据不同的场景(如按值删除、按索引删除、...

Python 中的前缀删除操作全指南(python删除前导0)

1.字符串前缀删除1.1使用内置方法Python提供了几种内置方法来处理字符串前缀的删除:#1.使用removeprefix()方法(Python3.9+)text="...

每天学点Python知识:如何删除空白

在Python中,删除空白可以分为几种不同的情况,常见的是针对字符串或列表中空白字符的处理。一、删除字符串中的空白1.删除字符串两端的空白(空格、\t、\n等)使用.strip()方法:s...

Linux系统自带Python2&yum的卸载及重装

写在前面事情的起因是我昨天在测试Linux安装Python3的shell脚本时,需要卸载Python3重新安装一遍。但是通过如下命令卸载python3时,少写了个3,不小心将系统自带的python2也...

如何使用Python将多个excel文件数据快速汇总?

在数据分析和处理的过程中,Excel文件是我们经常会遇到的数据格式之一。本文将通过一个具体的示例,展示如何使用Python和Pandas库来读取、合并和处理多个Excel文件的数据,并最终生成一个包含...

【第三弹】用Python实现Excel的vlookup功能

今天继续用pandas实现Excel的vlookup功能,假设我们的2个表长成这样:我们希望把Sheet2的部门匹在Sheet1的最后一列。话不多说,先上代码:importpandasaspd...

python中pandas读取excel单列及连续多列数据

案例:想获取test.xls中C列、H列以后(当H列后列数未知时)的所有数据。importpandasaspdfile_name=r'D:\test.xls'#表格绝对...

取消回复欢迎 发表评论: