python面向对象基础学习总结

一、面向对象

1.1 基本概念

面向对象:是一种抽象化的编程思想,将编程当成一个事物,对外界来说,事物是直接使用的,不用管内部情况,编程就是设置事物能做什么事

类:是对一系列具有相同特征和行为的事物的统称,是一个抽象的概念,不是真实存在的

  • 特征:即属性
  • 行为:即方法

对象(实例):是类创建出来的真实存在的事物,先有类,再有对象

类和对象关系:类用来创建对象

self:指调用该函数的对象,打印self和对象结果一致,都是当前内存中存储地址

1.2 面向对象三大特性

  • 封装:将属性和方法书写到类的里面的操作,封装可以为属性和方法添加私有权限
  • 继承:子类默认继承父类的所有属性和方法,子类可以重写父类属性和方法
  • 多态:指一类事物有多种形态,是一种使用对象的方式,子类重写父类方法,传入不同的子类对象的相同父类方法,产生不同的结果

1.3 类属性和实例属性

  • 类属性:是类对象所拥有的属性(直接在类中定义的属性),被该类的所有实例对象所共有
    • 访问类属性:类对象(类名.类属性)实例对象(对象.类属性)
    • 修改类属性:只能通过类对象(类名.类属性)修改,若通过实例对象修改,则表示创建了一个实例属性
    • 特点
      • 记录的某项数据始终保持一致时,则定义类属性
      • 类属性为全类所共有,仅占一份内存,更加节省内存空间
  • 实例属性:在__init__(self)中定义的属性
    • 访问实例属性:实例对象(对象.实例属性),不能通过类对象(类名.实例属性)访问
    • 修改实例属性:通过实例对象(对象.实例属性)修改
    • 特点:实例属性要求每个对象为其单独开辟一份内存空间来记录数据

1.4 类方法和静态方法

  • 类方法:方法前用@classmethod标识,第一个参数必须是类对象,一般为cls
    • ​​​​​​​使用场景
      • ​​​​​​​方法中需要使用类对象(如访问私有类属性等)时,定义类方法
      • 类方法一般和类属性配合使用
  • ​​​​​​​​​​​​​​静态方法:方法前用@staticmethod标识,无需传递类对象或实例对象(无形参self/cls)
    • ​​​​​​​访问:通过实例对象和类对象访问
    • 使用场景
      • ​​​​​​​方法中无需使用实例对象和类对象时,定义静态方法
      • 取消不必要的参数传递,有利于减少不必要的内存占用和性能消耗

二、魔法函数

2.1 __init__()

作用:初始化对象,在创建一个对象时默认被调用,无需手动调用,可带参数

__init__(self)中self参数,无需开发者传递,python解释器会自动把当前对象引用传递过去

2.2 __str__()

使用print输出对象时

  • 默认打印对象的内存地址
  • 若类中定义了__str__方法,就会打印从该方法中return的数据

2.3 __del__()

删除对象时,python解释器会默认调用__del__()方法

三、继承

继承:指多个类之间的所属关系,子类默认继承父类所有属性和方法

object类:是顶级类或基类,所有类默认继承object类,其他子类称为派生类

  • 单继承:一个类只继承一个父类
  • 多继承:一个类同时继承了多个父类

子类重写父类同名方法和属性,此时子类和父类具有同名属性和方法,默认使用子类的属性和方法

子类调用父类的同名的方法和属性

  • 需先调用父类的初始化方法__init__(self)
  • super()调用父类方法,可以自动查找父类,适合单继承使用
方法1:
super(当前类名, self).__init__()
super(当前类名, self).方法名()

方法2:
super().__init__()
super().方法名()

方法3:代码冗余,若父类类名变化,需频繁更改
父类名.__init__(self)
父类名.方法名(self)

四、私有权限

4.1 定义私有属性和方法

python中,可以为实例属性和方法设置私有权限,即设置某个属性或方法不继承给子类

  • 定义方法:在属性名和方法名前面加上两个下划线__
  • 定义后,对象不能访问私有属性和私有方法,子类无法继承父类的私有属性和私有方法
  • 私有属性和私有方法只能在类里面访问和修改

 4.2 获取和修改私有属性值

  • 获取私有属性:定义函数名get_xx(self)
  • 修改私有属性值:定义函数名set_xx(self) 

导航:http://xqnav.top/ 


 

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Python是一种高级编程语言,具有许多特点和优势。首先,Python是一种完全面向对象语言,这意味着它支持面向对象编程的所有特性和原则。其次,Python拥有一个强大的标准库,这意味着开发人员可以轻松地访问和使用许多内置的功能和工具。此外,Python还提供了大量的第三方模块,这些模块可以帮助开发人员更好地完成各种任务和项目。 在学习Python基础知识时,你需要了解一些基本的概念和语法规则。首先,Python源程序的格式是非常重要的。在编写Python代码时,你需要遵循正确的缩进规则和语法结构,这样才能确保程序能够正确地运行。 另外,如果你使用的是Python3.x版本,那么你会发现它默认支持中文,你可以在Python3环境中编写和运行中文代码。然而,如果你使用的是Python2.x版本,则不支持中文,需要进行一些额外的配置和处理才能正常运行中文代码。因此,建议在学习Python时使用Python3.x版本。 在Python中,变量的定义是在第一次使用时发生的。这意味着你不需要在使用变量之前显式地声明或指定变量的数据类型。Python的解释器会根据你赋予变量的值自动推断其准确的数据类型。这种特性使得Python编程更加简洁和灵活。 总结来说,学习Python基础知识包括了掌握Python的语法规则和格式、了解不同版本的特点和差异,以及熟悉Python的变量定义和类型推断机制。通过学习这些基础内容,你将能够开始编写简单的Python程序并逐渐提升你的编程能力。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Python基础学习](https://blog.csdn.net/qq_45888932/article/details/122300239)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

learning-striving

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值