面向对象编程(一)——Python
持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第2天,点击查看活动详情
Python面向对象自学笔记
笔记初始
基于生疏的C++面向对象基础,为了巩固以及更好的学习了解Python,突发奇想,作此拙作。
课程来源:撩课学院
推荐该课程是因为每集时长短,符合当今快节奏的社会,在娱乐至死的大潮中,可以压缩碎片化时间,为自己的未来添砖加瓦,且附一个异常精致的思维导图——XMind(B站介绍有,在此出于版权,不便附上,但深表钦佩)
第一章——基础理论(1-5)
重点:面向过程和面向对象的区别(做饭的例子非常形象)
第二章——面向对象在python中的实践(6-82)
定义一个类(6)
class 类名:
pass
怎样通过类,创建出一个对象?(7-8)
- 根据类创建对象-`one = Money()
- 类的定义
- 根据类,创建出一个对象
- 将对象的唯一标识返回
属性相关(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():
类调用:直接调用就可以, 不需要考虑第一个参数。
对象调用:直接调用就可以
直接调用就可以, 不需要考虑第一个参数
划分依据等等:方法的第一个参数必须要接收的数据类型。
不管是哪一种类型的方法,都是存储在类当中;没有在实例当中的
函数和方法的区别
函数都是独立的个体,函数之间几乎没有共享的数据,
方法有宿主。

浙公网安备 33010602011771号