博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
py 的第 22 天
阅读量:6088 次
发布时间:2019-06-20

本文共 2502 字,大约阅读时间需要 8 分钟。

 

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自己就支持所以以后学习别的语言的时候再注意下吧

 

 
 

 

转载于:https://www.cnblogs.com/Mrszhao/p/9545139.html

你可能感兴趣的文章
linux文件操作
查看>>
Nagios结合pnp4nagios图形监控
查看>>
基于Qt的OpenGL可编程管线学习(9)- X射线
查看>>
static在C语言中主要是两种用法
查看>>
Linux学习之033_4
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
OCM考试经历:Section 1 数据库和网络配置
查看>>
获取字符串中 中文与英文 个数
查看>>
我的友情链接
查看>>
NoSQL to MySQL with Memcached
查看>>
Word天,.Net 大集合,学学学~~~
查看>>
Html5 Canvas (2)
查看>>
支付宝App 支付(4年前分享)
查看>>
项目实践中Linux集群的总结和思考
查看>>
一行代码判断 IE 浏览器版本
查看>>
fopen和open函数的区别
查看>>
运维之我的docker-docker的网络管理
查看>>
xshell使用key登录linux
查看>>
vs2012 key
查看>>