• python学习——面向对象


    • 1.函数式编程和面向对象的对比
      • 函数:
        • 优点:定义简单、调用简单
        • 缺点:
      • 面向对象:
        • 缺点:定义复杂、调用复杂
        • 优点:将相同功能的函数归类
      • 总结:
        • 1、函数式编程有些时候比面向对象好
        • 2、python中支持两种编程方式
        • 3、面向对象格式:
          • 定义函数
            • class类名:——定义一个类
              • def __init__(self,name):——构造方法,如果类名(),则该方法被自动执行;目的是进行数据初始化;
              • def 函数名(self):——在类中编写了一个方法
                • pass
          • 调用函数
            • x1 = 类名()——实例化一个类名的对象
            • x1.函数名()——通过对象调用其中的方法
          • 应用:
            • 1、通过构造方法,可以将数据进行打包,以后使用时,去其中获取即可
            • 2、将数据封装到对象中,以供其他函数调用
            • 3、函数可以在类内部调用:self.name
    • 2.面向对象代码如何编写
      • a.规则
        • class Foo:
        • obj = Foo()
        • obj.detail()
      • b.什么时候写?如何写?
        • 方法一:归类+提取公共值
          • 提取公共值
        • 方法二:
          • 在指定类中编写和当前类相关的所有代码 + 提取公共值
    • 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,'女')
      • 继承:
        • 继承编写
          • class Foo(父类):
            • pass
        • 支持多继承(先找左,再找右)
        • 为什么要有多继承?提供代码重用性
        • 练习:找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()
    示例
  • 相关阅读:
    deque-size
    deque-size
    deque-resize
    Android4.4——SurfaceFlinger启动
    关于linux signal 6 (SIGABRT)
    (OK) 编译ANDROID
    compile android: depmod: ERROR: Found 2 modules in dependency cycles!
    Fedora 25正式发布:工作站版默认启用Wayland显示服务器
    running ANDROID
    (3/4 OK) 在VirtualBox中运行 cm-13-kiwi (华为 荣耀 5X)
  • 原文地址:https://www.cnblogs.com/bilx/p/11376994.html
Copyright © 2020-2023  润新知