Python中面向对象的哪三大特性最为关键?

2026-05-24 15:331阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计622个文字,预计阅读时间需要3分钟。

Python中面向对象的哪三大特性最为关键?

函数式编程和面向对象的对比:- 函数:定义/调用简单- 面向对象:定义/调用复杂好处:- 面向对象:归类、将类似函数写在一起面向对象代码示例:pythonclass Foo: def __init__(self, name): self.name=name

  • 函数式编程和面向对象的对比
    函数: 定义简单/调用简单
    面向对象: 定义复杂/调用复杂 好处:归类,将某些类似的函数写在一起
  • 面向对象代码如何编写
  • class Foo:
    def __init__(self,name):
    self.name = name
    def detail(self,msg):
    print(self.name,msg)
    obj = Foo()
    obj.detail()

    可以先归类,再提取公共值到构造方法中

    #归类
    class File:
    def file_read(self,file_path):
    pass
    def file_update(self,file_path):
    pass
    def file_delete(self,file_path):
    pass
    #提取公共值
    class File:
    def __init__(self,file_path):
    self.file_path = file_path #各方法中的公共值放入__init__方法中,避免重复写
    def file_read(self):
    pass
    def file_update(self,file_path):
    pass
    def file_delete(self,file_path):
    pass
  • 面向对象三大特性:封装/继承/多态
  • (1)封装
    将相关功能(不同方法)封装到一个类中,

    class Message:
    def email(self):pass
    def msg(self):pass
    def wechat(self):pass

    将数据封装到一个对象中:

    class Person:
    def __init__(self,name,age,gender):
    self.name = name
    self.age = age
    self.gender = gender
    obj = Person('孙福来',18,'女')

    (2)继承

    Python中面向对象的哪三大特性最为关键?

    class SuperBase:
    def f3(self):
    print('f3')

    class Base(SuperBase): # 父类,基类
    def f2(self):
    print('f2')

    class Foo(Base): # 子类,派生类

    def f1(self):
    print('f1')

    obj = Foo()
    obj.f1()
    obj.f2()
    obj.f3()
    # 原则:现在自己类中找,没有就去父类

    支持多继承(一般先找左/再找右),多继承遵守C3算法,多继承的目的是提高代码重用性,在找继承关系的时候,在类中self是谁的对象,从谁开始找
    (3)多态
    多种形态或多种状态
    鸭子模型,只要可以嘎嘎叫就是鸭子.

    Python
    # 由于python原生支持多态,所以没有特殊性.

    class Foo1:
    def f1(self):
    pass

    class Foo2:
    def f1(self):
    pass

    class Foo3:
    def f1(self):
    pass


    def func(arg): #参数arg是一个对象,随便传入一个对象,只要有f1方法即可
    arg.f1()

    obj = Foo1() # obj= Foo2() obj = Foo3()
    func(obj)


    本文共计622个文字,预计阅读时间需要3分钟。

    Python中面向对象的哪三大特性最为关键?

    函数式编程和面向对象的对比:- 函数:定义/调用简单- 面向对象:定义/调用复杂好处:- 面向对象:归类、将类似函数写在一起面向对象代码示例:pythonclass Foo: def __init__(self, name): self.name=name

  • 函数式编程和面向对象的对比
    函数: 定义简单/调用简单
    面向对象: 定义复杂/调用复杂 好处:归类,将某些类似的函数写在一起
  • 面向对象代码如何编写
  • class Foo:
    def __init__(self,name):
    self.name = name
    def detail(self,msg):
    print(self.name,msg)
    obj = Foo()
    obj.detail()

    可以先归类,再提取公共值到构造方法中

    #归类
    class File:
    def file_read(self,file_path):
    pass
    def file_update(self,file_path):
    pass
    def file_delete(self,file_path):
    pass
    #提取公共值
    class File:
    def __init__(self,file_path):
    self.file_path = file_path #各方法中的公共值放入__init__方法中,避免重复写
    def file_read(self):
    pass
    def file_update(self,file_path):
    pass
    def file_delete(self,file_path):
    pass
  • 面向对象三大特性:封装/继承/多态
  • (1)封装
    将相关功能(不同方法)封装到一个类中,

    class Message:
    def email(self):pass
    def msg(self):pass
    def wechat(self):pass

    将数据封装到一个对象中:

    class Person:
    def __init__(self,name,age,gender):
    self.name = name
    self.age = age
    self.gender = gender
    obj = Person('孙福来',18,'女')

    (2)继承

    Python中面向对象的哪三大特性最为关键?

    class SuperBase:
    def f3(self):
    print('f3')

    class Base(SuperBase): # 父类,基类
    def f2(self):
    print('f2')

    class Foo(Base): # 子类,派生类

    def f1(self):
    print('f1')

    obj = Foo()
    obj.f1()
    obj.f2()
    obj.f3()
    # 原则:现在自己类中找,没有就去父类

    支持多继承(一般先找左/再找右),多继承遵守C3算法,多继承的目的是提高代码重用性,在找继承关系的时候,在类中self是谁的对象,从谁开始找
    (3)多态
    多种形态或多种状态
    鸭子模型,只要可以嘎嘎叫就是鸭子.

    Python
    # 由于python原生支持多态,所以没有特殊性.

    class Foo1:
    def f1(self):
    pass

    class Foo2:
    def f1(self):
    pass

    class Foo3:
    def f1(self):
    pass


    def func(arg): #参数arg是一个对象,随便传入一个对象,只要有f1方法即可
    arg.f1()

    obj = Foo1() # obj= Foo2() obj = Foo3()
    func(obj)