基本概念
面向过程
-
是早期的一个编程概念,类似函数,但是没有返回值
-
具体做法:
-
把完成某个需求的所有步骤,从头到尾 逐步实现
-
将某些功能独立的代码 封装成一个又一个 函数
-
然后顺序调用不同的函数
-
-
特点:
-
注重 步骤与过程,不注重职责分工
-
如果需求复杂,代码会变得很复杂
-
开发复杂项目,没有固定的套路,开发难度大
-
面向对象
-
相较于函数,面向对象是更大的封装,根据 职责 在一个对象中封装多个方法
-
在完成某个需求前,首选确定 职责,根据职责确定不同的对象,在对象内部封装不同的方法
-
最后让不同的对象调用不同的方法
-
特点:
-
注重 对象和职责,不同的对象承担不同的职责
-
更加适合对应复杂的需求变化,专门应对复杂项目开发,提供固定套路
-
类和对象
-
类 和 对象 是面向对象的两个核心概念
-
在程序开发中,先有 类 ,后有 对象
-
类
-
对一群具有相同 特征 或 行为的事物的一个统称,是抽象的,不能直接使用
-
特征 即 属性
-
行为 即 方法(函数)
-
-
类相当于做汽车的图纸,是一个模板,而根据这个 模板 做出来的具体物品就是 对象
-
三要素
-
类名 这类事物的名字,使用大驼峰命名法(HelloWorld)
-
属性 指这类事物的特征
-
方法 指这类事物具备的行为
-
-
-
对象
-
对象 是根据类创建出来的一个具体存在,可以直接使用
-
根据类创建出来的对象,具备与类相同的 属性 和 方法
-
类和对象的关系
-
类是模板,对象 是根据 类 这个模板创建出来的,先有类,后有对象
-
类 只有一个,根据这个类创建的 对象 可以有多个
-
不同的对象之间,属性可能会各有不同
-
-
类 中定义了什么样的属性和方法,对象中就是什么样的属性与方法
基础语法
dir内置函数
-
在 Python 中,对象几乎无所不在,变更、数据、函数都是对象
-
使用内置函数 dir 传入 标识符/数据,可以查看对象内的所有属性和方法
-
__方法名__ 格式的方法是Python提供的 内置方法/属性
-
常见方法如下
方法名 | 类型 | 作用 |
__new__ | 方法 | 创建对象时,会被自动调用 |
__init__ | 方法 | 对象被初始化时,会被自动调用 |
__del__ | 方法 | 对象被从内存中销毁时,会被自动调用 |
__str__ | 方法 | 返回对象的描述信息,print 函数输出使用 |
示例
# 定义函数,测试内置方法
def demo():
pass
print(dir(demo))
输出结果
定义简单类
-
面向对象 是更大的封装,在一个类中封装多个方法,通过这个类创建的对象 可以直接使用这些方法
-
类中方法的定义,与之前定义函数时,几乎一样,区别在于每一个参数必须是 self, self 表示调用者本身的引用
-
调用中对象中的方法时,self 不需要传递
-
可以通过 self 调用对象的其它属性或方法
示例
"""
需求:
定义一个狗类,狗有 吃骨头,睡觉两个方法
"""
class Dog:
# 第一个参数 必须是 self,表示调用者本身的引用
def eat(self):
print("狗狗要吃骨头了...")
def sleep(self):
print("狗狗要睡觉了...")
# 定义对象调用方法
dog=Dog()
dog.eat()
dog.sleep()
# 定义第二个 狗对象
dog2=Dog()
dog2.eat()
dog2.sleep()
# dog 和dog2 是用同一个类 创建出来的,里面的方法和属性是一样的,但是对象的引用是不同的
print(dog)
print(dog2)
输出结果
对象的初始化
-
当使用 类名() 创建对象时,会 自动 执行以下操作
-
为对象分配内存空间
-
为对象的属性设置初始值(即调用 __init__ 方法)
-
-
__init__ 是对象的内置方法,专门用来定义一个类 具有哪些属性的方法
示例
class Dog:
def __init__(self,name):
print("开始初始化Dog的属性...")
self.name=name
def eat(self):
print("%s 开始吃骨头了..."%self.name)
def sleep(self):
print("%s 想要睡觉了..." %self.name)
# 定义对象,并为其属性赋值
dog=Dog("小白")
dog.eat()
dog.sleep()
dog2=Dog("小黑")
dog2.eat()
dog2.sleep()
输出结果
内置方法
-
__del__ 方法:当一个对象被从内存中销毁时,会自动调用
-
应用场景
-
__init__ 改造初始化方法,可以让对象更加灵活
-
__del__ 如果希望对象在被销毁前,再做一些事情,可以使用此方法
-
-
生命周期
-
一个对象从调用 类名() 创建,生命周期开始
-
一个对象的 __del__ 方法一旦被调用,生命周期结束
-
在对象的生命周期内,可以访问对象属性,或者调用对象方法
-
-
__str__ 方法: 默认打印 对象变量的引用内存地址值,如果希望使用 print 输出对象变量时,能够打印 自定义的内容,就可以利用 __str__ 方法,该方法必须返回一个字符串
示例
class Dog:
def __del__(self):
print("小黑去轮回了......")
def __str__(self):
return "我是小黑的自定义打印内容。。。"
dog=Dog()
print(dog)
print("---------------11111111111")
输出结果
程序猿与投资生活实录已改名为 程序猿知秋,WX同款,欢迎关注!