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

 










原文地址:https://www.cnblogs.com/Mrszhao/p/9545139.html