面向对象编程(一)——Python

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第2天,点击查看活动详情

Python面向对象自学笔记

笔记初始

基于生疏的C++面向对象基础,为了巩固以及更好的学习了解Python,突发奇想,作此拙作。
课程来源:撩课学院
推荐该课程是因为每集时长短,符合当今快节奏的社会,在娱乐至死的大潮中,可以压缩碎片化时间,为自己的未来添砖加瓦,且附一个异常精致的思维导图——XMind(B站介绍有,在此出于版权,不便附上,但深表钦佩)

第一章——基础理论(1-5)

重点:面向过程和面向对象的区别(做饭的例子非常形象)

第二章——面向对象在python中的实践(6-82)

定义一个类(6)

class 类名:
        pass

怎样通过类,创建出一个对象?(7-8)

  1. 根据类创建对象-`one = Money()
  2. 类的定义
  3. 根据类,创建出一个对象
  4. 将对象的唯一标识返回

属性相关(9-23)

属性和变量的区别及判定依据?

思维导图很清楚,就不过多赘述

对象属性


  • 尤其初始化——init

  • del 该变量

  • 注意访问不到时的报错:
    AttributeError: ‘Person’ object has no attribute ‘sex’
    查看对象的所有属性?
    dict

类属性

  • 1、类也是对象
  • 2、增
    分成从类的内部和从外部增加
  • 3、查
    优先从对像自身上查找属性,找到则结束,如果没有找到,根据class找到对象对应的类,到这个类里面查找。
  • 4、改
    不能通过对象修改类属性
  • 5、删
    不能通过对象删除,del语句只能删除直系属性
  • 6、注意、
    类的属性的增、删、改只能通过类来访问,查询的时候可以通过对象和类来访问!
  • 7、补充

对象属性和类属性的区别和联系

  • 两者不同:
    1、存储位置不同(一个是类,一个是对象)
# 1. 定义一个类
class Person:
	age = 10
    pass

# 2. 根据类, 创建一个对象
p = Person()


2、抽象层级不同
类是抽象的
对象是具化的
3、宿主不同(以上面为例)
类——Person
对象——p
4、补充:
p.age += 1
Person.age 与 p.age 打印的结果分别是多少?\

方法相关(24-33)

1、方法概念——def
2、分类:
实例方法:

class Person:
	def run(self):
	pass

一般使用对象来调用
类调用:必须传递一个对象,因为实例方法要求。
对象调用:不用手动传,解释器会默认把调用对象本身传递过去。
类方法:

class Person:
	@classmethod
	def countPerson(cls):

一般使用类来调用
类调用:不用手动传递第一个参数,会自动的把调用的类本身给传递过去。
对象调用:不用手动传递第一个参数,会自动的把调用的对象对应的类给传递过去。
静态方法()

class Person:
	@staticemethod
	def countPerson():

类调用:直接调用就可以, 不需要考虑第一个参数。
对象调用:直接调用就可以
直接调用就可以, 不需要考虑第一个参数
划分依据等等:方法的第一个参数必须要接收的数据类型。
不管是哪一种类型的方法,都是存储在类当中;没有在实例当中的
函数和方法的区别
函数都是独立的个体,函数之间几乎没有共享的数据,
方法有宿主。

posted @ 2022-06-10 11:27  Luciferpluto  阅读(1)  评论(0)    收藏  举报  来源