2021-08-26 Python之面向对象
#面向对象:
'''
程序中 现实中
对象 具体的事物
现实中事物--->转成电脑程序
万物皆对象
好处:灵活,复用
面向对象:
类
对象
属性
方法
对象:
小明的手机
小红的手机
小雨的手机
..................
对象的集合 --->共同特征:品牌颜色大小价格,动作:打电话发信息上网
类别:手机类
类别:学生类
共同特征:姓名年龄身高性别--->属性
动作: 敲代码刷抖音打游戏--->方法
多个对象--->提取对象的共同特征和动作--->封装到一个类中
'''
#所有类名要求首字母大写,多个单词使用驼峰式命名
#ValueError TypeError StopIterable
'''
class 类名[(父类)]
属性:特征
方法:动作
'''
1 #定义类 2 class Phone: 3 bread='huawei' 4 #使用类,创建对象 5 #对象名=类名() 6 p=Phone() 7 p.bread='iphone' 8 print(p.bread) 9 print(p) 10 po=Phone() 11 print(po.bread) 12 print(po)
1 class Student: 2 age=2 3 name='lily' 4 5 xiao=Student() 6 print(xiao.age) 7 xiao.age=18 #动态创建对象属性 8 print(xiao.age) 9 print(xiao.name) 10 #先在自己的空间找,再去模型中找,如果自己空间存在age属性,则不会去模型中找
#知识回顾
'''
列表推导式
[表达式 for 变量 in 列表]
[x+2 for x in list1]
1. [表达式 for 变量 in 列表 if 条件]
[x+2 for x in list1 if x%2==0]
2. [结果A if 条件 else 结果B for x in list1]
[x+2 if x%2==0 else x+1 for x in list1]
集合推导式:
[表达式 for 变量 in 列表]
字典推导式:
{key,value for k,v in 字典.items()}
生成器:generator
1. 使用类似的列表推导式 g=(表达式 for 变量 in 列表)
此时 g 就是生成器
2. 函数+yield
def func():
yield
g=func()
得到里面的元素:
系统函数:next(g)
生成器里面的函数:__next__() , send()
可迭代的与迭代器:
1.生成器 2.字符串,列表,集合.......
Iterable
isinstance(x Iterable)--->True, False
生成器就是一个迭代器--->因为它可以调用next()得到下一个元素
next(list)--->iter(list)--->next(iter(list)) --->下一个元素
面向对象:
类
class 类名:
特征:属性
动作:方法
对象=类名()
动态创建对象属性
本文来自博客园,作者:{admin-xiaoli},转载请注明原文链接:{https://www.cnblogs.com/crackerroot}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架