- 1.函数式编程和面向对象的对比
- 函数:
- 优点:定义简单、调用简单
- 缺点:
- 面向对象:
- 缺点:定义复杂、调用复杂
- 优点:将相同功能的函数归类
- 总结:
- 1、函数式编程有些时候比面向对象好
- 2、python中支持两种编程方式
- 3、面向对象格式:
- 函数:
- 2.面向对象代码如何编写
- 3.面向对象三大特性:封装/继承/多态
- 封装:
- 将相关功能封装到一个类中:
- class Message:
- def email(self):pass
- 将数据封装到一个对象中:
- class Person:
- def __init__(self,name,age,gender):
- self.name= name
- self.age = age
- self.gender = gender
- obj = Person('孙福来',18,'女')
- def __init__(self,name,age,gender):
- class Person:
- 将相关功能封装到一个类中:
- 继承:
- 继承编写
- class Foo(父类):
- pass
- class Foo(父类):
- 支持多继承(先找左,再找右)
- 为什么要有多继承?提供代码重用性
- 练习:找self是哪个类的对象,就从该类开始找(自己没有找父类)
- 继承编写
- 多态
- 多种形态或多种状态、
- 鸭子模型,只要可以嘎嘎叫就是鸭子.
- def func(arg):
- arg.send()
- 封装:
- 重点:
- 1.编写方式执行流程
- 2.如何归类?跟着感觉走
- 反向:归类+提取公共值
- 正向:类相关的功能+提取公共值
- 3.三大特性
- 封装:
- 将相关功能封装到一个类中
- 将数据封装到一个对象中
- 封装:
class Userinfo: def __init__(self): self.name = None def info(self): print('当前用户名称:%s' %(self.name)) def account(self): print('当前用户%s的账单是。。。' %(self.name)) def shopping(self): print('%s购买了人形抱枕' %(self.name)) def login(self): usr = input('>>>') pwd = input('>>>') if usr == 'alex' and pwd == 'sb': self.name = usr while 1: print(''' 1.查看用户信息 2.查看用户账单 3.购买 ''') num = int(input('序号:')) if num == 1: self.info() elif num == 2: self.account() elif num == 3: self.shopping() else: print('序号不存在,请重新输入') else: print('false') obj = Userinfo() obj.login()