• py 的第 22 天


    1.函数编程和面向对象的对比

    函数:
    def email(em,text):
    """
    发送邮件
    :return:
    """
    print(em,text)

    def msg(tel,text):
    """
    发送短信
    :return:
    """
    print(tel,text)

    def wechat(num,text):
    """
    发送微信
    :return:
    """
    print(num,text)
    # 编写功能:假设用户购买课程,然后给alex发送提醒;
    if 1==1:
    msg('188888888','张进购买了一个学位课')
    email('alex@sb.com','张进购买了一个学位课')
    wechat('xxxx','张进购买了一个学位课')

    面象对象则是在函数上加上一个 class

    class    一个类名

    编写功能的时候

    obj(这个就叫对象,命名规则同函数,以后命名规则不单写,不同函数的单写,记得还有一个事是,要有意义)=(类名)()

    obj(对象)。函数名(这里传参不传参无所谓等于函数使用方法)

    对比   函数调用简单/调用简单

        面向对象定义复杂/调用复杂     好处,归类方便了

    总结:

      1.函数式编程可能会比面向对象好。

      2.python中支持两种编程方式。

      3.面线对象方式格式

        定义:

          class 类名:                -定义了一个类

            def 函数名(self):    -在类中编写了一个‘方法’

            pass

        调用:

          x1(对象名)=类名()     -创建了一个对象/实例化一个对象

          x1(对象名)。函数名()           -通过对象调用其中一个方法。 

    2,打印

    1.构造方法

      示例一:

        class foo(类名随意写):

          def __init__(self,name,这后面可以有无限多的变量):构造方法,目的进行数据初始化。

          self.name=name

          self.age=18

       obj(对象名随意写)=foo(类名随意写)(‘赵一宁’)

       通过构造方法,可以将数据进行打包,以后使用时,去其中获取即可。

      实例二:

        class  bar(类名随意写):

          pass

        obj(对象名随意写)=bar(类名随意写)()   这样直接执行函数

    2.应用

      a。将数据封装到对象中,以便自己在方法中调用

      b.将数据封装到对象中,供其他函数使用

    class Foo:
    def __init__(self,k1,k2,k6):
    self.k1 = k1
    self.k2 = k2
    self.k6 = k6

    obj = Foo(111,22,333)
    new_func(obj)
       

    面向对象代码如何编写

    a.规则

    class  类名

      def __init-__(self这是必有的,然后n个变量):

        self。变量名=变量1

        def 函数名(self,变量2):

          print(self。变量1,变量2)

    obj(对象名)=类名()

    obj(对象名)=函数名()

    b.什么时候写?如何写?

    方式一:归类+提取公共值

    方式二:在指定类中编写和当前类相关的所有代码+提取公共值

    class Person:
    def __init__(self,na, gen, age, fig)
    self.name = na
    self.gender = gen
    self.age = age
    self.fight =fig

    def grassland(self):
    self.fight = self.fight - 10

    def practice(self):
    self.fight = self.fight + 90

    def incest(self):
    self.fight = self.fight - 666


    cang = Person('苍井井', '女', 18, 1000) # 创建苍井井角色
    dong = Person('东尼木木', '男', 20, 1800) # 创建东尼木木角色
    bo = Person('波多多', '女', 19, 2500) # 创建波多多角色

    dong.grassland()
    这个可以创建多个对象,具体看哪个对象,调用的哪个函数

    3.面向对象的三大特性:封装/继承/多态

    封装:

      将相关的功能封装到一个类中:

      class   类名:

        def 函数名

         。。。

      将数据封装到一个对象中

        class 类名:

          def__int__(self默认的,n多个变量名):

            self。变量名(这个随便起名,这样方便计)=变量名

              。。。

            对象名=类名(传参 或不传都行)

    继承:

      分为父类就是基类,子类就是派生类

      原则就是先在自己的类中找

    1.继承编写

    class 类名(父类):

    2.支持多继承(先左后右)

    3.多继承提供了代码的再次使用性

    4.找的时候注意self是谁的对象,从哪开始找。

    多态:

    多种形态或多种状态

    鸭子模型,只要嘎嘎叫的就是鸭子,闭眼睛都知道的

    由于python自己就支持所以以后学习别的语言的时候再注意下吧

     








    
    
    
  • 相关阅读:
    Spring中常见的设计模式——工厂模式
    Java编程思想——第14章 类型信息(二)反射
    Java编程思想——第17章 容器深入研究(二)
    Java编程思想——第17章 容器深入研究(一)
    python笔记-正则表达式常用函数
    python笔记-文件读写
    AWK编程
    ORA-01555错误
    group_concat的使用
    expect-调试模式的使用
  • 原文地址:https://www.cnblogs.com/Mrszhao/p/9545139.html
Copyright © 2020-2023  润新知