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 类名:
特征:属性
动作:方法
对象=类名()
动态创建对象属性

 

posted @ 2021-08-26 14:01  admin-xiaoli  阅读(19)  评论(0编辑  收藏  举报