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}