P107 Python面向对象-2.1 课程内容回顾01
一、day09复习:函数部分
"""
day09 复习
购物车,体会重构。
2048算法,体会降为思想,锻炼逻辑思维.
内存图
P108 Python面向对象-2.2 课程内容回顾02
一、day09复习:面向对象部分
"""
面向对象
概述:
面向过程:关注过程(细节) “干”
例如:购物车
选择菜单-->购买-->打印商品信息-->创建订单--> ...
|->结算-->...
面向对象:关心解决问题的人 “找”
类与对象:
类:类别
对象:个体
类与类区别:行为(函数/方法)不同
对象与对象区别:数据不同
语法:
创建类:
class 类名:
def __init__(self,参数):
#数据成员
self.数据1 = 参数
#行为成员
def 方法名称():
方法体
创建对象:
变量名 = 类名(参数)
"""
塔防游戏:面向对象思想举例
P109 Python面向对象-2.3 实例成员01
一、练习1
"""
# 练习:参照day06/exercise07.py
1. 创建学生类
-- 数据:姓名,年龄,成绩,性别
-- 行为:在控制台中打印个人信息的方法
2. 在控制台中循环录入学生信息,如果名称是空字符,退出录入。
3. 在控制台中输出每个学生信息(调用打印学生类的打印方法)
4. 打印第一个学生信息
"""
class Student:
def __init__(self, name, age, score, sex):
self.name = name
self.age = age
self.score = score
self.sex = sex
def print_self_info(self):
print("%s的年龄是%d,成绩是%d,性别是%s" % (self.name, self.age, self.score, self.sex))
# s01 = Student("赵敏",26,100,"女")
# s01.print_self_info()
"""
[
{
"name": "赵敏",
"age": 23,
"score": 100,
"sex": “女”
}
]
"""
list_student_info = []
while True:
name = input("请输入姓名:")
if name == "":
break
age = int(input("请输入年龄:"))
score = int(input("请输入成绩:"))
sex = input("请输入性别:")
# 之前使用字典表达一个具体学生信息
# dict_info = {"name": name, "age": age, "score": score, "sex": sex}
stu = Student(name, age, score, sex)
list_student_info.append(stu)
for stu in list_student_info:
stu.print_self_info()
# 获取第一个学生信息
info = list_student_info[0]
info.print_self_info()
P110 Python面向对象-2.4 实例成员02
一、实例变量
语法
(1) 定义:对象.变量名
(2) 调用:对象.变量名
说明
(1) 首次通过对象赋值为创建,再次赋值为修改.
w01 = Wife()
w01.name = “丽丽”
w01.name = “莉莉”
(2) 通常在构造函数(init)中创建。
w01 = Wife(“丽丽”,24)
print(w01.name)
(3) 每个对象存储一份,通过对象地址访问。
作用
描述所有对象的共有数据。
__ dict__
对象的属性,用于存储自身实例变量的字典。
二、实例方法
语法
(1) 定义: def 方法名称(self, 参数列表):
方法体
(2) 调用: 对象地址.实例方法名(参数列表)
不建议通过类名访问实例方法
说明
(1) 至少有一个形参,第一个参数绑定调用这个方法的对象,一般命名为"self"。
(2) 无论创建多少对象,方法只有一份,并且被所有对象共享。
作用
表示对象行为。
三、示例代码
class Student:
def __init__(self, name, age, score, sex):
# 创建实例变量
self.name = name
self.age = age
self.score = score
self.sex = sex
def print_self_info(self):
# 读取实例变量
print("%s的年龄是%d,成绩是%d,性别是%s" % (self.name, self.age, self.score, self.sex))
list01 = [
Student("赵敏", 28, 100, "女"),
Student("苏大强", 68, 62, "男"),
]
s01 = list01