目录
1.1 面向函数的编程方式:
1、把某个需求的所有步骤,比如加减乘除,从头到尾逐步实现; 2、根据开发需求,将某些功能独立的代码。比如加法,封装成一个又一个函数。 3、最后,我们就是有顺序的调用不同的函数就可以了。
1.2 ⾯向对象的编程方式
相⽐较函数,⾯向对象是更⼤的封装,根据职责在⼀个对象中封装多个⽅法
1.3 类和对象的概念
类和对象是⾯向对象编程的两个核⼼概念。
类:类是对⼀群具有相同特征或者⾏为的事物的⼀个统称,是抽象的,不能直接使⽤ 。
比如,人相当于一个类:身高,性别,年龄。这些特征称为属性,而吃饭,跑步,喝水,这些行为则称为方法。
对象:对象是由类创建出来的⼀个具体存在,可以直接使⽤。
由哪⼀个类创建出来的对象,就拥有在哪⼀个类中定义的 属性 和⽅法 。
1.4 类和对象的关系
类是模板,对象是根据类这个模板创建出来的,应该先有类,再有对象 ;
1.5 类的设计
在程序开发中,要设计⼀个类,通常需要满⾜⼀下三个要素:
1.6 属性和⽅法的确定
注:需求中没有涉及的属性或者⽅法在设计类时,不需要考虑。
2.1、 class 关键字
class 关键字用于创建一个类,语法如下:
class 类名:
def ⽅法 1(self, 参数列表):
pass
⽅法的定义格式和之前学习过的函数⼏乎⼀样 ; 区别在于第⼀个参数必须是 self 。
示例:
class Cat:
def eat(self, name):
print(name + "吃饭")
def drink(self, name):
print(name + "喝水")
2.2 创建一个对象
语法:
对象名 = 类名(参数列表)
# 定义Cat类
class Cat:
def eat(self, name):
print(name + "吃饭")
def drink(self, name):
print(name + "喝水")
# 创建Cat 类
cat = Cat();
# 调用Cat 吃饭的方法
cat.eat("小白");
# 调用Cat 喝水的方法
cat.drink("小黑")
2.3 方法中的 self 参数
# 定义Cat类
class Cat:
def set_name(self, name):
self.name = name
def eat(self):
print(self.name + "吃饭")
def drink(self):
print(self.name + "喝水")
# 创建Cat 类
cat = Cat();
# 调用 set_name 方法
cat.set_name("小白")
# 调用Cat 吃饭的方法
cat.eat();
# 调用Cat 喝水的方法
cat.drink()
3.1 iniit 初始化方法
init就是对象的初始化⽅法, init 是对象的内置⽅法。
当使⽤ 类名() 创建对象时,会自动执⾏以下操作:
# 定义Cat类
class Cat:
def __init__(self):
self.name = '小白'
def eat(self):
print(self.name + "吃饭")
def drink(self):
print(self.name + "喝水")
# 创建Cat 类 初始化方法被自动调用
cat = Cat();
# 调用Cat 吃饭的方法
cat.eat();
# 调用Cat 喝水的方法
cat.drink()
带有参数的初始化方法。
# 定义Cat类
class Cat:
def __init__(self,name = "小白"):
self.name = name
def __del__(self):
print(self.name+"活动已结束,已回窝睡觉")
def eat(self):
print(self.name + "吃饭")
def drink(self):
print(self.name + "喝水")
# 创建Cat 类
cat = Cat();
# 调用Cat 吃饭的方法
cat.eat();
# 调用Cat 喝水的方法
cat.drink()
在 Python 中,使⽤ print 输出 对象变量,默认情况下,会输出这个变量 引⽤的对象是由哪⼀个类创建的对象,以及在内存中的地址(⼗六进制表示)
# 定义Cat类
class Cat:
def __init__(self,name = "小白"):
self.name = name
# 创建Cat 类
cat = Cat();
# 打印
print(cat)
#显示的结果 <__main__.Cat object at 0x000001FCB5A49668>
如果在开发中,希望使⽤ print 输出对象变量时,能够打印⾃定义的内容, 就可以利⽤ str 这个内置⽅法了。
注: str ⽅法必须返回⼀个字符串
# 定义Cat类
class Cat:
def __init__(self,name = "小白"):
self.name = name
def __str__(self):
return "我是一只猫,名字叫"+self.name
# 创建Cat 类
cat = Cat();