面向对象-01

Posted jbzd

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象-01相关的知识,希望对你有一定的参考价值。

一:创建类和对象
  class f:
    def bar(self):
      print(‘bar‘)
    def hello(self, name)
      print(‘hello %s‘%name)
  fobj = f()
  fobj.bar() > ‘bar‘
  fobj.hello(‘tom‘) >‘hello tom‘

ps:类中的第一个参数必须是self,类中定义的函数叫方法
二:面向对象三大特性--封装
#三大特性:封装、继承、多态
1.封装:
  #将内容封装到某处
  #从某处调用被封装的内容

例1:将内容封装到某处

技术分享图片

解析:self是一个形式参数,当执行 fobj = F(‘tom‘,18)时,self等于fobj

例2:从某处调用封装的内容
调用封装的内容时,有两种情况:
  #通过对象直接调用
  #通过间接self调用

fobj = F(‘tom‘,18)
fobj.name >>> tom 调用fobj对象的name属性
fobj.age >>> 18  调用fobj对象的age属性

class F:
  def __init__(self,name,age)
    self.name = name
    self.age = age
  def hello(self):
    print(self.name)
    print(self.age)
fobj = F(‘tom‘,18)
fobj.hello()
>>> tom
>>> 18

 


要求如下:
1.打印汽车有4个轮子
2.打印汽车是红色的
3.打印汽车牌子是奔驰

1.打印汽车有8个轮子
2.打印汽车是白色的
3.打印汽车牌子是宝马
#函数式编程:
def carr(num):
  print(‘汽车有%s个轮子‘%num)
def color(col):
  print(‘汽车是%s色‘ %col)
def brand(bran):
  print(‘汽车牌子是%‘%bran)
调用:
carr(4)
color(‘红色‘)
brand(‘奔驰‘)

carr(8)
color(‘白色‘)
brand(‘宝马‘)

#面向对象编程
class F:
  def __init__(self, carr, color, bran):
    self.carr = carr
    self.color = color
    self.bran = bran
  def carr(self):
    print(‘汽车有%s个轮子‘%self.carr)
  def color(col):1
    print(‘汽车是%s色‘ %self.color)
  def brand(bran):
    print(‘汽车牌子是%‘%self.bran)
fobj1 = F(4,‘红色‘,‘奔驰‘)
fobj1.carr()
fobj1.color()
fobj1.brand()

fobj2 = F(8,‘白色‘,‘宝马‘)
fobj1.carr()
fobj1.color()
fobj1.brand()

三.1:面向对象的三大特性--继承

#继承:面向对象中的继承和现实世界的继承相同,即:子可以继承父的内容
例子:
  #猫
  class cat:
    def voice(self):
      print(‘喵~~~~‘)
    def eat(self):
      print(‘吃‘)
    def drink(self):
      print(‘喝‘)
    def pull(self):
      print(‘拉‘)
  #狗
  class dog:
    def voice(self):
      print(‘汪~~~~‘)
    def eat(self):
      print(‘吃‘)
    def drink(self):
      print(‘喝‘)
    def pull(self):
      print(‘拉‘)

由此看出,猫和狗都具备了相同的 吃、喝、拉的功能,只有叫声不同,那么可以利用继承的思想,将这些相同的功能进行提炼出来:
  #动物
  class Animals:
    def eat(self):
      print(‘吃‘)
    def drink(self):
      print(‘喝‘)
    def pull(self):
      print(‘拉‘)
  #猫
  class cat(Animals):
    def voice(self):
      print(‘喵~~~~~‘)
  class dog(Animals):
    def voice(self):
      print(‘汪~~~~‘)

  cat = cat()
  cat.eat() >>> 吃
  cat.drink() >>> 喝
  cat.pull() >>> 拉
  
由此可见,父类将相同的方法进行整合,子类仅需继承父类就可以获得这些方法而不必一一去实现每个方法

 

三.2: 多继承:

#继Python可以继承多个类
#Python的类如果继承了多个类,那么寻找方法的方式有两种:深度优先广度优先
技术分享图片
  #当类是经典类时,多继承,优先按照深度优先方式查找
  #当类是新式类时,多继承,优先按照广度优先方式查找


 


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


  






































































































































以上是关于面向对象-01的主要内容,如果未能解决你的问题,请参考以下文章

面向面试编程代码片段之GC

01什么是面向对象,面向对象的基本操作

PHP面向对象之选择工厂和更新工厂

面向对象回顾01

Java中面向对象的三大特性之封装

python之路之前没搞明白4面向对象(封装)