Python类与对象

这篇具有很好参考价值的文章主要介绍了Python类与对象。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1 基本概念

1.1 面向对象

面向对象是一种抽象,是一种用分类的方式看待问题的方法,用 Java 的编程思想来说就是:万物皆对象;面向对象有三大特性:封装、继承、多态。

1.2 类

上面说了面向对象是一种用分类的方式看待问题的方法,一个分类就是一个类,可以把类看作是一个抽象的模板,如:Car 类。

1.3 对象

对象是根据类创建出来的一个个实例。

2 基本使用

2.1 类的定义

# 类的定义class Car:    pass

2.2 对象的创建​​​​​​​

# 创建 Car 的实例对象 cclass Car:    pass	c = Car()

2.3 类中定义属性​​​​​​​

# 定义 Car 类的属性 nameclass Car:    name = 'BMW'

3 类中的方法

3.1 内置方法

Python 创建任何一个类的时候,都会包含一些内置的方法,主要包括如下:

方法 说明
__init__ 构造函数,在生成对象时调用
__del__ 析构函数,释放对象时使用
__repr__ 打印,转换
__setitem__ 按照索引赋值
__getitem__ 按照索引获取值
__len__ 获得长度
__cmp__ 比较运算
__call__ 函数调用
__add__ 加运算
__sub__ 减运算
__mul__ 乘运算
__div__ 除运算
__mod__ 求余运算
__pow__ 乘方

3.2 自定义方法

Python 有三种常见的方法,分别为:实例方法、类方法、静态方法,这三种方法都定义在类中。

3.2.1 类方法

类方法是将类本身作为对象进行操作的方法。

定义与使用​​​​​​​

'''类方法(可调类变量、可被实例调用、可被类调用)1、类方法通过@classmethod装饰器实现,只能访问类变量,不能访问实例变量;2、通过cls参数传递当前类对象,不需要实例化。'''class Car(object):    name = 'BMW'    def __init__(self, name):        self.name = name    @classmethod    def run(cls,speed):        print(cls.name,speed,'行驶')# 访问方式1c = Car("宝马")c.run("100迈")# 访问方式2Car.run("100迈")

3.2.2 静态方法

静态方法是类中的函数,不需要实例。

定义与使用​​​​​​​

'''静态方法(可调类变量、可被实例调用、可被类调用)1、用 @staticmethod 装饰的不带 self 参数的方法;2、静态方法名义上归类管理,实际中在静态方法中无法访问类和实例中的任何属性;3、调用时并不需要传递类或实例。'''class Car(object):    name = 'BMW'    def __init__(self, name):        self.name = name    @staticmethod    def run(speed):        print(Car.name,speed,'行驶')		# 访问方式1c = Car("宝马")c.run("100迈")# 访问方式2Car.run("100迈")

3.2.3 实例方法

实例方法就是类的实例能够使用的方法。

定义与使用​​​​​​​

# 实例方法(可调类变量、可调实例变量、可被实例调用)# 第一个参数强制为实例对象 self。class Car(object):    name = 'BMW'    def __init__(self, name):        self.name = name    def run(self,speed):        print(self.name,speed,'行驶')
# 访问c = Car("宝马")c.run("100迈")

4 类的继承

定义与使用​​​​​​​​​​​​​

# 基本语法:class ClassName(BaseClassName)# 父类class Car(object):    name = 'BMW'    def __init__(self, name):        self.name = name    def run(self,speed):        print(self.name,speed,'行驶')        # 子类class BMWCar(Car):    conf = "经济适用型"    pass
# 调用父类 Car 中 run 方法bc = BMWCar("BMW经济适用型轿车")bc.run("100迈")

5 类的多态

定义与使用​​​​​​​

# 父类class Car(object):    name = 'BMW'    def __init__(self, name):        self.name = name    def run(self,speed):        print('Car-->',self.name,speed,'行驶')
# 子类1class BMWCar(Car):    def run(self,speed):        print('BMWCar-->',self.name,speed,'行驶')
# 子类2class SVWCar(Car):    def run(self,speed):        print('SVWCar-->',self.name,speed,'行驶')
# 调用 run 方法c = Car("Car")c.run("120迈")
bc = BMWCar("宝马")bc.run("100迈")
sc = SVWCar("大众")sc.run("80迈")
# 输出结果'''Car--> Car 120迈 行驶BMWCar--> 宝马 100迈 行驶SVWCar--> 大众 80迈 行驶'''

在上面的例子中,我们可以看出:c、bc 、sc 是不同类型的对象,在它们调用 run 方法时,调用的均是各自类中的方法,这就是多态。文章来源地址https://www.toymoban.com/news/detail-437376.html

到了这里,关于Python类与对象的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 第九单元 面向对象一:类与对象

    假设,班级里40位同学,我们用程序保存40位学生的信息:学号,姓名,性别,生日,身份证号。如果是你,你会怎么实现? 小菜同学拿到这个题,奋书疾笔,马上写出如下代码:   那如果是有4000,4万?你是不是立马从入门到卸载了? 面向对象来告诉你解决方案!! 面向对

    2024年02月06日
    浏览(50)
  • TypeScript类与对象:面向对象编程的基础

    TypeScript 是 JavaScript 的一个超集,它为 JavaScript 添加了静态类型、类、接口和装饰器等面向对象编程的特性,并通过编译器将 TypeScript 编译成JavaScript,可以在任何 JavaScript 环境中运行,因此成为了 JavaScript 开发中不可或缺的工具。面向对象编程是现代编程语言的基础,而 Ty

    2024年02月09日
    浏览(45)
  • python基本语法知识(五)——面向对象

    例子1 输出结果: 王伟 男 中国 福建省 30 大家好,我是王伟 大家好,我是王伟, 多多关照 例子2:构造方法__init__() 与C++的构造函数类似: 魔术方法类似于C++中的 运算符重载 例子1: str 和 lt 这个方法的作用就是控制类转换为字符串时的行为 输出结果: Student类创建了一个类对

    2024年02月09日
    浏览(48)
  • Python学习之路-面向对象:三个基本特征

    封装:根据职责将属性和方法封装到一个抽象的类中 继承:实现代码的重用,相同的代码不需要重复的编写 多态:不同的对象调用相同的方法,产生不同的执行结果,增加代码的灵活度 封装是面向对象编程的一大特点,面向对象编程的第一步就是将属性和方法封装到一个抽

    2024年02月02日
    浏览(56)
  • 2.python设计模式【面向对象设计的SOLID原则 基础概念】

    概念:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。即软件实体应该尽量在不修改原有代码的情况下进行扩展 概念:所有引用父类的地方必须能透明地使用其子类的对象 概念:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不依赖细节;细节

    2024年02月16日
    浏览(48)
  • 第十单元 面向对象二:静态类与静态成员

    前言 我们天天都在使用 为什么Console 类 调用 方法不需要实例化而可以直接调用呢? 我们可以查看Console的源码发现Console类定义如下: 我们发现 Console 类 前面有个 static 修饰, 我们把 static 修饰的类 叫作 静态类 static的作用 static是静态的意思,可以修饰成员变

    2024年02月06日
    浏览(41)
  • 【C++】面向对象编程(二)面向对象的编程思维:virtual虚拟调用、继承、protected成员、派生类与基类

    默认情形下,成员函数的解析都是编译时静态进行。如果要让成员函数的解析在程序运行时动态进行,需要在成员函数的声明前加上virtual: 虚函数的作用: 用基类的指针指向不同的派生类的对象时,基类指针调用其虚成员函数,会调用 真正指向对象的成员函数 ,而

    2024年02月07日
    浏览(44)
  • 【是C++,不是C艹】 类与对象 | 认识面向对象 | 访问限定符 | 封装 | this指针

    💞💞 欢迎来到 Claffic 的博客 💞💞  👉  专栏: 《是C++,不是C艹》👈 前言: 在C++入门之后,就要进入C++的第一个核心:类与对象,这期带大家认识认识面向对象编程,访问限定符,封装以及 this 指针。 注: 你最好是学完了C语言,并学过一些初阶的数据结构。 (没有目

    2024年02月07日
    浏览(44)
  • 【Java基础教程】(七)面向对象篇 · 第一讲:上干货!面向对象的特性、类与对象、内存结构引用分析、垃圾收集器 GC处理、封装性详解、构造方法、匿名对象、简单 Java 类~

    程序是将数据和逻辑封装在一起的代码段。在Java中,方法是常用的代码段封装方式。然而,在Java中,方法必须存在于一个类中才能使用。因此,我们将进入本章的核心内容——面向对象编程。 利用面向对象设计的程序可以实现代码的重用,并方便开发者进行项目维护。面向

    2024年02月13日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包