初识面向对象
1.流程控制语句2.计算机基础3.编程语言介绍4.python语言介绍5.python解释下载与安装6.python知识补充+语法入门7.基本数据类型8.基本运算符9.用户交互 输入输出方法10.字符编码11.可变与不可变数据类型12.文件操作的基本流程13.文件的基本操作14.异常处理15.深浅拷贝16.函数定义和调用17.函数的调用18.名称空间和作用域19.装饰器20.迭代器和三元运算符21.模块与包22.random、os、json模块23.hashlib、time模块24.正则25.datetime、sys、logging模块26.正则re模块27.常用的内置函数
28.初识面向对象
29.面向对象进阶30.封装、继承、多态31.常用魔法方法和元类32.网络编程初识33.网络编程进阶34.并发编程之多进程35.并发编程之多线程36.并发编程之协程初识面向对象
1.面向对象
- 面向对象核心在于对象
- 对象相当于一个整体,把数据和功能整合到一起
# 学生:自己的名字,自己的年龄,自己的性别
# 比如一个学生可以上课、写作业、运动;
def student():
def sport():
...
student_dict = {
'name': 'name',
'sport': sport
}
# 比如一个老师可以教课、批改作业;
# 比如一个运动员可以训练、参加比赛
# 学校 :
# 学校有名字
# 学校有地址
# 学生 : 运动员,老师,上课学生 -- 对象
# 同属于一个学校,都有各自的名字,年龄,职责 -- 类
2.类导读
- 类即类别/种类,是面向对象分析和设计的基石,如果多个对象有相似的数据与功能,那么该多个对象就属于同一种类
- 有了类的好处是:
- 我们可以把同一类对象相同的数据与功能存放到类里,而无需每个对象都重复存一份,这样每个对象里只需存自己独有的数据即可,极大地节省了空间
- 所以,如果说对象是用来存放数据与功能的容器,那么类则是用来存放多个对象相同的数据与功能的容器
- 综上所述,虽然我们是先介绍对象后介绍类,但是需要强调的是:
- 在程序中,必须要事先定义类,然后再调用类产生对象(调用类拿到的返回值就是对象)
- 产生对象的类与对象之间存在关联,这种关联指的是:对象可以访问到类中共有的数据与功能
- 所以类中的内容仍然是属于对象的,类只不过是一种节省空间、减少代码冗余的机制
- 面向对象编程最终的核心仍然是去使用对象
3.什么是类
- 类即类别、种类,是面向对象设计最重要的概念,对象是特征与技能的结合体,而类则是一系列对象相似的特征与技能的结合体
- 所以,先有鸡和先有蛋的问题就出来了
- 先有的一个个具体存在的对象(比如一个具体存在的人)
- 还是先有的人类这个概念,这个问题需要分两种情况去看
4.定义类
-
定义类,在类中定义方法,在方法中去实现具体的功能
-
实例化类并的个一个对象,通过对象去调用并执行方法
-
注意:
- 注意:类名称首字母大写&驼峰式命名
- py3之后默认类都继承object
- 在类种编写的函数称为方法
- 每个方法的第一个参数是self
class Message:
def send_email(self, email, content):
data = f"给{email}发邮件,邮件内容是{content}"
print(data)
msg_object = Message()
msg_object.send_email("cx991217@163.com","欢迎注册网易邮箱")
登陆注册练习
class ATM:
user_pwd_dict = {}
def __init__(self):
self.name = None
self.pwd = None
self.balance = 1000
def login(self):
print("登陆")
name = input("请输入姓名:")
pwd = input("请输入密码:")
if not name == self.user_pwd_dict[name] and pwd == self.user_pwd_dict[pwd]:
return "登陆失败"
self.name = name
self.pwd = pwd
return "登陆成功"
def register(self):
print("注册")
name = input("请输入姓名:")
pwd = input("请输入密码:")
self.user_pwd_dict[name] = name
self.user_pwd_dict[pwd] = pwd
return "注册成功"
def out_money(self):
money = int(input("请输入取款金额:"))
if money > self.balance:
return "余额不足"
self.balance -= money
return "取款成功"
atm = ATM()
print(atm.register())
print(atm.login())
print(atm.out_money())
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)