python--面向对象之三个特性:封装、继承、多态

一、面向对象简介

1、面向对象不是所有的情况都适用
2、面向对象编程
  a.定义类
    class 类名:
      def 方法1(self, 参数名):
        方法体

b.根据类创建对象,使用对象去执行类中的方法
    obj = 类名()
    obj.方法名
3、self,形参,python内部传递

4、函数式编程与面向对象式编程的区别
在这里插入图片描述
#!/usr/bin/env python
-- coding:utf-8 --
“”"
面向对象编程初识
“”"
#先定义一个类
class Hello():
#定义一个方法
def sayHell(self, name):
print(‘欢迎您!’ + name)
#创建一个对象
obj = Hello()
obj.sayHell(‘yusheng_liang’)
二、面向对象–封装
应用场景:
  1、当同一类型的方法具有相同参数时,直接封装到对象即可
  2、把类当做模板,创建多个对象(对象内封装的数据可以不一样)

3、类名+括号
    自动执行类中的__init__方法:创建了一个对象
    在__init__方法中执行具体封装的操作
    __init__有一个特殊名字:构造方法(初始化)

示例一:面向对象之封装,非主流的方式
#!/usr/bin/env python
-- coding:utf-8 --
“”"
封装,非主流的方式
“”"
class Foo():
def add_foo(self):
print(self.name) #打印已经封装好的对象属性
def del_foo(self):
print(self.name)

#创建一个对象
obj1 = Foo()
#在对象中封装数据
obj1.name = ‘yusheng_liang’
#执行方法,执行过程中可以根据self去obj1中取已经封装在里面的数据
obj1.add_foo()
示例二:面向对象之封装,使用构造方法的方式封装数据
#!/usr/bin/env python
-- coding:utf-8 --
“”"
封装,使用构造方法的方式封装数据
“”"
class Foo():
def init(self, args):
“”"
构造方法
:param args:
“”"
self.name = args

def add_foo(self):
print(self.name) #打印已经封装好的对象属性
def del_foo(self):
print(self.name)

#创建一个对象,实例,并且将yusheng_liang封装到对象中
obj1 = Foo(‘yusheng_liang’)

##在对象中封装数据
#obj1.name = ‘yusheng_liang’

#执行方法,执行过程中可以根据self去obj1中取已经封装在里面的数据
obj1.add_foo()
三、面向对象–继承

1、派生类可以继承基类中所有的功能
  2、派生类和基类同时存在相同的功能时,优先找派生类的
  3、python类可以同时继承多个类(C#/java不可以),用逗号隔开,优先找自己的功能,再在继承类中从左到右的顺序查找功能

4、多继承时的查找顺序如下:

在这里插入图片描述
#!/usr/bin/env python
-- coding:utf-8 --
“”"
面向对象之继承
“”"
#定义一个父类,又叫基类
class Animals:
def say(self):
print(‘Hello, I am saying’)
def run(self):
print(‘I am running’)

#定义子类,又叫派生类,在括号中写上父类名
class Cat(Animals):
def init(self, name):
self.name = name

def sing(self):
print(self.name + ’ 喵喵喵’)

#定义子类,又叫派生类,在括号中写上父类名
class Dog(Animals):
def init(self, name):
self.name = name

def sing(self):
print(self.name + ’ 汪汪汪’)

cat1= Cat(‘小猫咪’)
cat1.sing()
cat1.say()

dog1 = Dog(‘小狗狗’)
dog1.sing()
dog1.run()
在这里插入图片描述
四、面向对象–多态,多种形态
  python本身支持多态
  #!/usr/bin/env python
-- coding:utf-8 --
“”"
多态
“”"

class Foo:
def f1(self):
print(‘Foo’)

class Bar:
def f1(self):
print(‘Bar’)

def func(arg):
print(arg)

func(Foo())
func(Bar()
最后,小编想说:我是一名python开发工程师,
整理了一套最新的python系统学习教程,
想要这些资料的可以关注私信小编“01”即可,希望能对你有所帮助

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值